摘要:不能通過判斷,它是通過比較的。和返回布爾值用于檢測數(shù)組中的元素是否有滿足指定條件的用于檢測數(shù)組中所有元素是否都符合指定條件。第二個可選參數(shù)是累加器的初始值。累加器,即函數(shù)上一次調(diào)用的返回值。
unshift、push、shift、pop
這4個方法都會改變原數(shù)組
unshift() 從前面添加元素,push() 從后面追加元素,返回數(shù)組長度
shift() 刪除第0個元素,pop() 刪除最后一個元素,返回被刪除的元素
slice不改變原數(shù)組
slice(m, n)返回原數(shù)組索引m(包含)到n(不包含)的元素數(shù)組。不傳參數(shù)默認全部截取,只傳一個參數(shù),從該位置截取到末位。類似于String.prototype.substring
let arr = [1,2,3,4,5] console.log(arr.slice()); // [ 1, 2, 3, 4, 5 ] console.log(arr.slice(1)); // [ 2, 3, 4, 5 ] console.log(arr.slice(2,4)); // [ 3, 4 ] console.log(arr); // [1,2,3,4,5]splice
改變原數(shù)組。
splice(m,n,e1,e2,e3) 從索引m(包括)到n(不包括)的元素刪除數(shù)組,再在該位置處添加e1,e2,e3。若n傳入0,則只增加;若只傳m和n,則只刪除;若只傳m,則從m位置刪除到末位。放回刪除元素數(shù)組
let arr = [1,2,3,4,5]; console.log(arr.splice(2), arr); // [ 3, 4, 5 ] [ 1, 2 ] console.log(arr.splice(0,1,2), arr); // [ 1 ] [ 2, 2, 3, 4, 5 ]concat
拼接,不改變原數(shù)組
let arr = [1,2,3], arr1 = [4]; console.log(arr.concat(arr1, 5), arr); // [ 1, 2, 3, 4, 5, ] [ 1, 2, 3 ] console.log([...arr, ...arr1, 5]); // [ 1, 2, 3, 4, 5 ] (對象也可以這樣拼接,但重復的會覆蓋,相當與 Object.assign)of 和 from
of()類似于new Array(),但后者如果傳入一個參數(shù),則是設置數(shù)組長度。
from() 把偽數(shù)組轉(zhuǎn)換為真數(shù)組,類似于[].slice.call()(或者寫成Array.prototype.slice.call())
偽數(shù)組有DOM集、arguments、{0: "zero", 1: "one", length: 2}
Array.of(1,2,3,4); // [ 1, 2, 3, 4 ] Array.from({0: "zero", 1: "one", length: 2}); // [ "zero", "one" ]
xx instanceof Array
Array.isArray()
Object.prototype.toString.call() === "[object Array]"
typeof操作符可以判斷出number、boolean、string、function和undefined,而不能判斷處具體的Object類型。
判斷Array要使用Array.isArray(arr);
判斷null請使用myVar === null;
判斷某個全局變量是否存在用typeof window.myVar === "undefined";
函數(shù)內(nèi)部判斷某個變量是否存在用typeof myVar === "undefined"
不必把任意類型轉(zhuǎn)換為boolean再判斷,因為可以直接寫if (myVar) {...},如果需要轉(zhuǎn)換可以用 !!myVar
不要使用new Number()、new Boolean()、new String() 創(chuàng)建包裝對象;
用parseInt()或parseFloat()來轉(zhuǎn)換任意類型為Number;用String()來轉(zhuǎn)換任意類型為String,或者直接調(diào)用某個對象的toString()方法;
indexOf 和 includesindexOf() 返回索引,不存在就返回 -1。inclues()返回布爾值。
NaN 不能通過indexOf()判斷,它是通過“===”比較的。
arr = [1, "2", null, NaN]; arr.indexOf(NaN); // -1 arr.includes(NaN); // truefilter、find 和 findIndex
filter() 返回數(shù)組。find() 返回值,不存在就返回 undefined。 findIndex() 返回第一個匹配到的索引,不存在就返回 -1。
// let arr = [1, "2", null, NaN]; // arr.filter(item => typeof item === "number"); // [1, NaN] // arr.find(item => typeof item === "number"); // 1 // arr.findIndex(item => typeof item === "number"); // 0some 和 every
返回布爾值
some()用于檢測數(shù)組中的元素是否有滿足指定條件的;every()用于檢測數(shù)組中所有元素是否都符合指定條件。
不對空數(shù)組進行檢測,不改變原數(shù)組
let arr = [Array(), [], {}, null] let res1 = arr.some((item, index, arr) => { return Object.prototype.toString.call(item) === "[object Array]" }) let res2 = arr.every((item, index, arr) => { return Object.prototype.toString.call(item) === "[object Array]" }) console.log(res1,res2); // true falsemap 和 forEach
map() 對數(shù)組中的每個元素進行處理,得到新的數(shù)組,不改變原數(shù)組
forEach() 相當于 for 循環(huán),返回 undefined,不改變原數(shù)組
let res = [0,1,2,3,4].map((item, idx)=> item * idx); // [ 0, 1, 4, 9, 16 ]reduce
reduce((accumulator, currentValue, currentIndex, array)=>{}, initValue)
第一個參數(shù)是迭代器函數(shù),函數(shù)的作用是對數(shù)組中從左到右的每一個元素進行處理。第二個可選參數(shù)是累加器的初始值。沒有時,累加器第一次的值為currentValue。
accumulator 累加器,即函數(shù)上一次調(diào)用的返回值。第一次的時候為 initialValue || arr[0]
currentValue 數(shù)組中函數(shù)正在處理的的值,第一次的時候是 initialValue || arr[1]
currentIndex 數(shù)組中函數(shù)正在處理的的索引
array 函數(shù)調(diào)用的數(shù)組
console.log( [1,2,3].reduce((a,b,c,d)=>{ console.log(a,b,c,d); return a+b; // 下一次的a }, 4) ); // 10 /* 4 1 0 [ 1, 2, 3 ] 5 2 1 [ 1, 2, 3 ] 7 3 2 [ 1, 2, 3 ] */
當然累乘或者做其他業(yè)務也是可以的。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/99605.html
摘要:是對象內(nèi)置的方法參數(shù)是字符串是的數(shù)組參數(shù)有函數(shù)和默認初始值函數(shù)有四個參數(shù)上一次的返回值當前值當前值索引當前數(shù)組求和替換方案求和,利用截取改變數(shù)組再利用遞歸求和合并方法用于合并兩個或多個數(shù)組。 來源于:阿賢博客 在日常的開發(fā)中離不開前端對數(shù)據(jù)的處理,在這里整理下ES6/ES7/ES8...新的數(shù)組api。 扁平化n維數(shù)組 Array.flat() -- ES10 方法會按照一個可指定的...
摘要:為開始截取的索引可為負值,為結(jié)束的索引可選向從目標數(shù)組中添加刪除項目,然后返回被刪除的項目。返回累加之后的結(jié)果上一次調(diào)用回調(diào)返回的值,或者是提供的初始值數(shù)組中當前被處理的數(shù)組項當前數(shù)組項在數(shù)組中的索引值調(diào)用方法的數(shù)組幫助記憶增刪查改 增 arr.push(); // 目標數(shù)組尾部添加,返回新數(shù)組長度 arr.unshift(); // 目標數(shù)組首部添加,返回新數(shù)組...
摘要:返回一個由原數(shù)組中的每個元素調(diào)用一個指定方法后的返回值組成的新數(shù)組。方法測試數(shù)組中的某些元素是否通過了指定函數(shù)的測試,返回值非常實用的功能,判斷數(shù)組中是否某元素符合特定條件。 ECMAScript 5發(fā)布于2009年12月。ECMAscript 5.1版(下文稱ES5)發(fā)布于2011年6月,,并且成為ISO國際標準(ISO/IEC 16262:2011) http://www.ecma...
摘要:返回一個由原數(shù)組中的每個元素調(diào)用一個指定方法后的返回值組成的新數(shù)組。方法測試數(shù)組中的某些元素是否通過了指定函數(shù)的測試,返回值非常實用的功能,判斷數(shù)組中是否某元素符合特定條件。 ECMAScript 5發(fā)布于2009年12月。ECMAscript 5.1版(下文稱ES5)發(fā)布于2011年6月,,并且成為ISO國際標準(ISO/IEC 16262:2011) http://www.ecma...
摘要:當運行時,如果不為,則將超時函數(shù)推送到事件隊列,并且函數(shù)退出,從而使調(diào)用堆棧清零。因此,該方法從頭到尾不經(jīng)過直接遞歸調(diào)用即可處理,因此調(diào)用堆棧保持清晰,無論迭代次數(shù)如何。 前端常用代碼片段(一) 點這里前端常用代碼片段(二) 點這里前端常用代碼片段(三) 點這里前端常用代碼片段(四) 點這里 1.tap事件點透問題? 問題點擊穿透問題:點擊蒙層(mask)上的關閉按鈕,蒙層消失后發(fā)現(xiàn)觸...
閱讀 1297·2021-11-04 16:09
閱讀 3484·2021-10-19 11:45
閱讀 2396·2021-10-11 10:59
閱讀 1010·2021-09-23 11:21
閱讀 2762·2021-09-22 10:54
閱讀 1129·2019-08-30 15:53
閱讀 2600·2019-08-30 15:53
閱讀 3477·2019-08-30 12:57