数组方法二

 filter:过滤,不操作原数组,返回过滤后的数组,返回true ,这一项就放到新数组

一般用于删除

let newAry=[3,5,2,8,9,4,0].filter(function (item){

   return item>2 && item<5

})
console.log(newAry);//[3、4]

forEach :循环,没有 return 返回值

 let arr = [2,4,5,7,1];
arr.forEach(function (item){//声明式,不关心如何实现

   console.log(itme);
})
for(let i=0; i<arr.length;i++){//编程式
console.log(arr[i]);
}

for(let key in arr){//key会变成字符串类型

}
for(let val of arr){}//支持return,并且是值of数组,不能遍历对象
面试题:forEach、for、for in,for of的区别
for in 能打印数组的私有属性
for of 支持return,不能遍历对象

includes (ES6):查看数组是否包含,返回boolean类型

let arrf = [2,5,7,9];
arrf.includes(5);

find(ES6):找到具体的那一项,不改变原数组,返回true 表示找到了,找到就结束循环,找不到返回undefined

//需求:找到用户名
let resule = arr3.find(function(itme,index){ return itme == 'xxx' })
console.log(resule);//xxx

keys:方法返回一个包含数组中每个索引键的Array Iterator对象。

var array1 = ['a', 'b', 'c'];
var iterator = array1.keys(); 
  
for (let key of iterator) {
  console.log(key); // expected output: 0 1 2
}

map:映射 ,将原有的数组映射成一个新数组,不操作原数组,返回新数组,回调函数中返回什么这一项就是什么

一般用于更新,修改

//需求[1,2,3]变成 <li>1</li><li>2</li><li>3</li>
let arr1 = [1,2,3].map(function (item){
return `<li>${itme}<li>`//es6中的模板字符串,遇到变量使用${}取值
})
console.log(arr1.join(''));

reduce :收敛,4个参数,返回叠加后的结果,原数组不变,回调函数返回

let some=[1,3,4,5].reduce(function (prev,next,index,item){//第一项,第二项,索引,原数组
    console.log(prev,next);
    return prev+next
})
console.log(some);

 

//计算多维数组

let some2=[{pirce:30,count:2},{pirce:50,count:2},{pirce:40,count:2}];
let some3=some2.reduce(function (prve,next){
    return prve+next.pirce*next.count;
},0)//0是默认指定第一次的prve
console.log(some3);//240

 

//多维数组变成一维数组

let some4 = [[1,2,3],[4,5,6],[7,8,9]];

let some5 = some4.reduce(function (prve,next){

   return prve.concat(next);

})

console.log(some5);//[1,2,3,4,5,6,7,8,9]

every()是对数组中每一项运行给定函数,如果该函数对每一项返回true,则返回true。

some()是对数组中每一项运行给定函数,如果该函数对任一项返回true,则返回true。

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

console.log( arr.some( function( item, index, array ){  
    return item > 3;  
})); 

//找到有大于3的就返回 true

console.log( arr.every( function( item, index, array ){ 
    return item > 3; 
}));
//每一项都大于3才能返回true,有一项不大于3的就返回false

some一直在找符合条件的值,一旦找到,则不会继续迭代下去。
every从迭代开始,一旦有一个不符合条件,则不会继续迭代下去。

 

posted @ 2019-08-29 12:37  欣欣向荣998  阅读(310)  评论(0编辑  收藏  举报