三歇盼、數(shù)組的遍歷方法
- Array.forEach() (遍歷)
從頭到尾遍歷數(shù)組(只能通過try/catch終止循環(huán))
不改變原數(shù)組
第一個參數(shù): 元素
第二個參數(shù): 下標(biāo)
第三個元素: 原數(shù)組
栗子:
var arr = [2, 4, 5, 6];
var res = arr.forEach(function (ele, index, array) {
console.log(ele, index, array);
});
console.log(res); // undefined
- Array.map(); (映射)
返回新數(shù)組舔痕,不改變原數(shù)組
要有return
返回被加工后的新元素
栗子:
var res = arr.map(function (ele, index, arr) {
console.log(ele, index, arr);
return ele + 1;
});
console.log(res); // [3, 5, 6, 7]
console.log(arr); // [2, 4, 5, 6]
- Array.filter() 過濾
返回滿足條件的元素組成的新數(shù)組
return 條件; // 元素是否滿足你定義的條件
栗子:
var res = arr.filter(function (ele, index, arr) {
console.log(ele, index, arr);
return ele >= 4;
});
console.log(res); // [4, 5, 6]
console.log(arr); // [2, 4, 5, 6]
- Array.every() 和 Array.some()
every():每一項都返回true,則返回true
some(): 某一項返回true豹缀,則返回true
- reduce()和reduceRight()
使用指定的函數(shù)將數(shù)組元素進(jìn)行組合伯复,生成單個值
指定函數(shù)中第一個參數(shù)為 前一個值
第二個參數(shù)為 前一個值
array.reduce(function (上一個值, 當(dāng)前元素) {}, 起始值)
reduce():從數(shù)組的第一項開始,逐個遍歷到最后一個
reduceRight() 則從數(shù)組的最后一項開始邢笙,向前遍歷到第一項
栗子:
var arr = [2, 4, 5, 6];
var res = arr.reduce(function (pre, cur, index) {
// pre: 上一次循環(huán)的結(jié)果
// cur: 當(dāng)前的元素
// index: 下標(biāo)
console.log(pre, cur, index);
return cur + pre;
}, 10);
console.log(res);
四啸如、如何判斷數(shù)組
- arr.constructor === Array
- Object.prototype.toString.call(arr) === '[object Array]'
- Array.isArray(arr)