JS基礎(chǔ)篇-Array

一、迭代方法

ES5為數(shù)組定義了5個迭代方法,這些方法大大方便了處理數(shù)組的任務(wù):

1、every

對數(shù)組每一項(xiàng)進(jìn)行給定函數(shù),如果每一項(xiàng)都返回 true, 則返回 true:

var arr = [1,2,3,4,5];

var evertResult = arr.every(function(item, index, array) {

? ? return item > 0;

})

console.log(everyResult);? ? // true

2、some

對數(shù)組的每一項(xiàng)進(jìn)行給定函數(shù),如果任意一項(xiàng)返回 true,則返回 true:

var arr = [1,2,3];

var some = arr.some(function(item, index, array) {

? ? return item > 1

})

console.log(some);? ? // true

3、filter

對數(shù)組的每一項(xiàng)進(jìn)行給定函數(shù), 返回該函數(shù)會返回 true 的項(xiàng)組成的數(shù)組:

var arr = [1,2,3];

var filter = arr.filter(function(item, index , array) {

? ? return item > 2;

})

console.log(filter);? ? // [3]

4、map

對數(shù)組中每一項(xiàng)進(jìn)行給定函數(shù),返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組:

var arr = [1,2,3];

var map = arr.map(function(item, index, array) {

? ? return item*2;

})

console.log(map);? ? //[2,3,6]

5、forEach

對數(shù)組每一項(xiàng)進(jìn)行給定函數(shù),沒有返回值,和 for 循環(huán)類似:

var arr = [1,2,3];

arr.forEach(function(item, index, array) {

? ? if(item != 2) {

? ? ? ? array.splice(index, 1, 2)

????}

})

console.log(array);? ? // [2,2,2]

二、歸并方法

ES5新增了兩個歸并數(shù)組的方法:reduce() 和 reduceRight()。這兩個方法迭代數(shù)組所有項(xiàng),然后構(gòu)建一個最終返回的值。

var arr = [1,2,3];

var result = arr.reduce(function(prev, cur, index, array) {

? ? return prev + cur

})

console.log(result);? ? // 6

reduce() 函數(shù)接受四個參數(shù):前一個值、當(dāng)前值、index和數(shù)組對象。這個函數(shù)返回的任何值都會最為第一個參數(shù)自動傳給下一項(xiàng),第一次迭代發(fā)生在第二項(xiàng)上,因此第一個參數(shù)是數(shù)組的第一項(xiàng),第二個參數(shù)是數(shù)組的第二項(xiàng)。

三、監(jiān)測數(shù)組

ES3的方法:instanceof

var arr = [1,2,3];

arr instanceof Array? ? // true

ES5的方法:Array.isArray

var arr = [1,2,3];

Array.isArray(arr);? ? // true

四、轉(zhuǎn)換方法

1、toLocaleString()、toString()、valueof()

2、join() 將數(shù)組轉(zhuǎn)換為字符串,且用分隔符分割

var arr = [1,2,3];

arr.join('/');? ? //1/2/3

五、棧方法

棧方法是指Last-In-First-Out后進(jìn)先出

1、push() 從數(shù)組末尾添加

2、pop() 從數(shù)組末尾移除

六、隊列方法

隊列方法是First-In-First-Out先進(jìn)先出

shift() 從數(shù)組前端移除

unshift()? ? 從數(shù)組前端添加

七、重排序方法

reverse()? ? 反轉(zhuǎn)數(shù)組

sort()? ? 排序

var arr = [3,2,1];

arr.sort(function(a, b){

? ? return a-b;? ? // [1,2,3]

})

八、操作方法

1、concat() 用于復(fù)制或從尾部添加【創(chuàng)建新數(shù)組】

var arr = [1,2,3];

var arr1 = arr.concat(4);

console.log(arr);? ? // [1,2,3]

console.log(arr1);? ? // [1,2,3,4]

2、slice() 用于復(fù)制或截取數(shù)組【創(chuàng)建新數(shù)組】

一個參數(shù)時返回指定位置到尾部的數(shù)組;

兩個參數(shù)時返回指定位置到結(jié)束位置之前但不包括結(jié)束位置的數(shù)組;

var arr = [1,2,3];

var arr1 = arr.slice();? ? // [1,2,3]

var arr2 = arr.slice(1);? ? // [2,3]

var arr3 = arr.slice(1,3);? ? // [2,3]

3、splice() 用于刪除、插入、替換,最強(qiáng)大的數(shù)組方法

刪除:可以刪除任意數(shù)量的項(xiàng),需要兩個參數(shù):要刪除第一項(xiàng)的位置和要刪除的項(xiàng)數(shù)。返回新數(shù)組為刪除項(xiàng)組成的數(shù)組。

var arr = [1,2,3];

arr.splice(0, 1);? ? //[1]

console.log(arr);? ? //[2,3]

插入和替換:至少三個參數(shù),第一個是起始位置,第二個是要刪除項(xiàng)的數(shù)量,第三個及以后是是要插入或替換的值。

var arr = [1,2,3];

arr.splice(0,3,4);? ? // [1,2,3]

console.log(arr);? ? // [4]

九、位置方法

indexOf() / lastIndexOf()

var arr = [1,2,3];????

arr.indexOf(3);? ? // 2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容