国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Array 的一些常用 API

vslam / 3416人閱讀

摘要:不能通過判斷,它是通過比較的。和返回布爾值用于檢測數(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" ]
判斷數(shù)組的方法有

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 和 includes

indexOf() 返回索引,不存在就返回 -1。inclues()返回布爾值。

NaN 不能通過indexOf()判斷,它是通過“===”比較的。

arr = [1, "2", null, NaN];
arr.indexOf(NaN); // -1
arr.includes(NaN); // true
filter、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"); // 0
some 和 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 false
map 和 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

相關文章

  • 常用數(shù)組操作方法

    摘要:是對象內(nèi)置的方法參數(shù)是字符串是的數(shù)組參數(shù)有函數(shù)和默認初始值函數(shù)有四個參數(shù)上一次的返回值當前值當前值索引當前數(shù)組求和替換方案求和,利用截取改變數(shù)組再利用遞歸求和合并方法用于合并兩個或多個數(shù)組。 來源于:阿賢博客 在日常的開發(fā)中離不開前端對數(shù)據(jù)的處理,在這里整理下ES6/ES7/ES8...新的數(shù)組api。 扁平化n維數(shù)組 Array.flat() -- ES10 方法會按照一個可指定的...

    vvpale 評論0 收藏0
  • 關于一些常用數(shù)組API記憶方法(借鑒)

    摘要:為開始截取的索引可為負值,為結(jié)束的索引可選向從目標數(shù)組中添加刪除項目,然后返回被刪除的項目。返回累加之后的結(jié)果上一次調(diào)用回調(diào)返回的值,或者是提供的初始值數(shù)組中當前被處理的數(shù)組項當前數(shù)組項在數(shù)組中的索引值調(diào)用方法的數(shù)組幫助記憶增刪查改 增 arr.push(); // 目標數(shù)組尾部添加,返回新數(shù)組長度 arr.unshift(); // 目標數(shù)組首部添加,返回新數(shù)組...

    Pluser 評論0 收藏0
  • ECMAScript 5.1 實用特性概覽

    摘要:返回一個由原數(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...

    xiao7cn 評論0 收藏0
  • ECMAScript 5.1 實用特性概覽

    摘要:返回一個由原數(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...

    bang590 評論0 收藏0
  • 前端常用代碼片段(五)

    摘要:當運行時,如果不為,則將超時函數(shù)推送到事件隊列,并且函數(shù)退出,從而使調(diào)用堆棧清零。因此,該方法從頭到尾不經(jīng)過直接遞歸調(diào)用即可處理,因此調(diào)用堆棧保持清晰,無論迭代次數(shù)如何。 前端常用代碼片段(一) 點這里前端常用代碼片段(二) 點這里前端常用代碼片段(三) 點這里前端常用代碼片段(四) 點這里 1.tap事件點透問題? 問題點擊穿透問題:點擊蒙層(mask)上的關閉按鈕,蒙層消失后發(fā)現(xiàn)觸...

    MoAir 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<