前言:一般比較少寫前言,不知道為啥,今天想寫一次,今天特想寫點部落格,但是又不知道從何寫起,想了想覺得可以把一些平時經常用的東西歸納總結一下,想到前幾天看到的array的相關東西,覺得array拓展出來的方法和屬性越來越廣了,es6/7的流行,越來越多的屬性拓展和語法糖可以簡化我們的**,增加我們**的可閱讀性和可拓展新。如果有任何批量歡迎指出來,我會立刻修復和拓充。
array是我們程式設計師日常開發者經常用到的乙個物件型別,他本是就提供了相當多的屬性,es6/7也對array進行了不少拓展,今天我對這些屬性做乙個小的歸納,以便您以及自己今後的檢視。主要針對es6/7裡的屬性
1) map: array的map方法,這個方法是對陣列進行遍歷,需要return操作,並返回乙個新的陣列。原陣列不變。
const test = [6, 4, 3, 7, 5, 8, 1, 9, 2];
let data = ;
data = test.map(v => v * 2); // [12, 8, 6, 14, 10, 16, 2, 18, 4]
2) foreach: array的foreach方法,這個方法是對陣列進行遍歷,不需要return操作。
const test = [6, 4, 3, 7, 5, 8, 1, 9, 2];
let data = ;
test.foreach(v => );
data // [12, 8, 6, 14, 10, 16, 2, 18, 4]
3) filter: array的filter方法,對陣列進行遍歷,需要return乙個boolean,從陣列中篩選我們需要的數,並返回陣列。
const test = [6, 4, 3, 7, 5, 8, 1, 9, 2];
let data = ;
data = test.filter(v => v > 5); // [6, 7, 8, 9]
4) some: array的filter方法,對陣列進行遍歷,判斷元素是否有符合條件的,如果有則返回true,如果沒有則返回false
const test = [6, 4, 3, 7, 5, 8, 1, 9, 2];
let data = ;
test.some(v => v > 5); // true
5) find&findindex: array的find和findindex方法,這兩個方法是找到符合條件的第乙個元素,find是直接返回元素,findindex是返回元素的index
const test = [6, 4, 3, 7, 5, 8, 1, 9, 2];
let data = ;
test.find(v => v > 5); // 6
test.findindex(v => v > 5); // 0
6) reduce&reduceright: array的reduce和reduceright方法,這兩個方法可以理解成原理一樣,只是reducer是從index 0--length-1,而reduerright是從length-1 -- 0。
const test = ['a', 'b', 'c'];
test.reduce((total, c) => total + c, 'd'); // 'abcd'
test.reduceright((pre, c) => pre + c, 'd'); // 'dcba'
7) flat: array 的flat方法是將多維陣列降維,引數是降維的次數預設是1。
const test = [[1,2,3,['cc']]];
test.flat(); // [1, 2, 3, ['cc']]
test.flat(2); // [1, 2, 3, 'cc']
如果不知道這個陣列的維度,這個flat方法還提供了乙個infinity引數,這個引數會將陣列降維,直至陣列變成一維陣列為止。
這讓我想到乙個比較經典的面試題,將乙個陣列變成一位陣列,並去重。
const test = [[1, 2, 3, ['cc', 2, 5], 5]];
let data = ;
data = array.from(new set(test.flat(infinity))); // [1, 2, 3, "cc", 5]
今天的分享就到這兒了,這裡只是記錄了一些平時在**中經常會用到的一些陣列方法,如果有錯誤的地方或者可以補充的地方希望大家能不吝賜教,我會及時跟正和補充。謝謝大家。 LEB128相關知識
leb128 little endian base 128 是一種變長的整數壓縮編碼形式,它是出自於dwarf debug file format。在android的dalvik executable format中使用該編碼用於表示32位整數。由於32位整數占用固定的4個位元組,可能大多數整數並不...
面試準備3 相關知識
1.對深度學習相關神經網路理解深入,如dnn cnn rnn gan等 2.有深厚的理論研究背景和資料基礎,熟悉em mcmc lr lda pca 時間序列等數學方法 3.熟悉一種以上的深度學習的開源框架,如caffe tensorflow arm ai library snpe等 dnn長短期記...
H264相關知識
1 基本概念 p frame 前向 編碼幀又稱predictive frame,通過充分將低於影象序列中前面已編碼幀的時間冗餘資訊來壓縮傳輸資料量的編碼影象,也叫 幀 b frame 雙向 內插編碼幀 又稱bi directional interpolated prediction frame,既考...