现在Javascript为数组提供了大量的方法以简化数组操作,本文简单介绍几个重要的数组方法
1.Array.map
使用时机:当您想要修改现有数组的内容并将结果存储为新变量时。
遍历每个元素,最终返回新的数组。原数组保持不变。
const items = ["苹果","李子","香蕉"];
const result = items.map( v => `我喜欢 ${v}` );
console.log(result);
//结果
[ '我喜欢 苹果', '我喜欢 李子', '我喜欢 香蕉' ]
- Array.filter
使用时机:当您要从数组中删除不符合特定条件/条件的项目时。
遍历每个元素,找出满足条件的,最终返回新的数组。原数组保持不变。
const items = ["苹果","李子","香蕉","火龙果"];
const result = items.filter( v => v.indexOf('果') >-1 );
console.log(result);
//结果
[ '苹果', '火龙果' ]
- Array.reduce
使用时机:当您想通过操纵数组的值将数组转换为单个值时。
接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。原数组保持不变。
const items = ["苹果","李子","香蕉","火龙果"];
const callback = function(total,value){
if(total){
return total + ","+value;
}
return value;
};
const result = items.reduce(callback);
console.log(result);
//结果
苹果,李子,香蕉,火龙果
- Array.forEach
使用时机:当您只想遍历任何数组的每个项目而无需构造新数组时。
循环遍历一个数组并在每个项目上执行一个函数。保存原数组不变。
const items = ["苹果","李子","香蕉","火龙果"];
const result = items.forEach( value =>{
console.log(`我喜欢 ${value}`)
});
//结果
我喜欢 苹果
我喜欢 李子
我喜欢 香蕉
我喜欢 火龙果
- Array.find
使用时机:找到数组中符合条件的第一个元素。
从第一个元素开始测试,返回首个满足条件的元素。保持原数组不变。
此方法和 Array.filter 有点类似,不同在于 find方法是返回”首个符合条件的元素”,filter 方法是"返回所有符合条件的元素为新的数组"
const items = ["苹果","李子","香蕉","火龙果"];
const result = items.find(v=>v.indexOf("果")>-1);
console.log(result);
//结果
苹果
- Array.every
使用时机:当您要确认数组的每一项都通过显式定义的条件时。
检查数组中的每个元素是否通过提供的条件。如果数组中的所有元素都符合条件,则该方法将返回true。如果没有,它将返回false
const items = ["苹果","李子","香蕉","火龙果"];
const result = items.every(v=>v.indexOf("果")>-1);
console.log(result);
//结果
false
- Array.some
和 every 很像,区别在于 every 需要“所有元素满足条件”,some 是“只要有一个元素满足条件”。
使用时机:当您需要获得通过显式定义的测试的数组的第一项时。
找到成功的数组元素,它将停止并返回true。但是,如果.some()未成功到达数组末尾,则返回false。
const items = ["苹果","李子","香蕉","火龙果"];
const result = items.some(v=>v.indexOf("果")>-1);
console.log(result);
//结果
true