Array.isArray(監(jiān)測(cè)該對(duì)象是否為數(shù)組)
用法:Array.isArray(arr)
返回值:Boolean
var arr = [],obj = {};
console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false
filter(返回新數(shù)組,不會(huì)改變?cè)瓟?shù)組,不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè),只能做篩選,此方法會(huì)遍歷完數(shù)組)
用法:Array.filter
var arr = [1,2,3,4];
var newArr = arr.filter( (item, index) => {
return item % 2;
});
console.log(newArr); // [1,3];
find(返回新數(shù)組,不會(huì)改變?cè)瓟?shù)組,不會(huì)對(duì)空數(shù)組進(jìn)行檢測(cè),只能做篩選,此方法滿足條件立即跳出)
var arr = [1,2,3,4];
var newArr = arr.filter( (item, index) => {
return item === 1;
});
console.log(newArr); // [1];
reduce、reduceRight(對(duì)數(shù)組中的每個(gè)元素(從左到右或從右到左)執(zhí)行callback函數(shù)累加,將其減少為單個(gè)值。)
元素相加
var arr = [1,2,3,4];
var newArr = arr.reduce((sum, value) => {
return sum + value;
},0);
console.log(newArr); // 10
合并數(shù)組
const concatArr = [[0, 1], [2, 3], [4, 5]].reduce((a, b) => {
return a.concat(b);
}, []); // [0, 1, 2, 3, 4, 5]
數(shù)組去重
var obj = {};
let personList = [
{id: 0, name: "小明"},
{id: 1, name: "小紅"},
{id: 2, name: "小白"},
{id: 3, name: "小白"},
{id: 1, name: "小明"},
{id: 2, name: "小紅"},
];
personList = personList.reduce((cur,next) => {
obj[next.id] ? "" : obj[next.id] = true && cur.push(next);
return cur;
},[]);
console.log(personList);
map (返回新數(shù)組,不會(huì)改變?cè)瓟?shù)組,可以在原有數(shù)據(jù)基礎(chǔ)上做運(yùn)算)
var arr = [1,2,3,4];
var newArr = arr.map( (item, index) => {
return item + 1;
});
console.log(newArr); // [2,3,4,5];
Array.every(檢測(cè)數(shù)組中的每一個(gè)元素是否都通過(guò)了callback測(cè)試,全部通過(guò)返回true,否則返回false。)
var arr = [1,2,3,4];
var arr1 = [1,2,3,"4"];
var newArr = arr.every((item) => {
return typeof item === "number";
});
var newArr1 = arr1.every((item) => {
return typeof item === "number";
});
console.log(newArr); // true
console.log(newArr1); // false