1.forEach循环
就是代替普通的for循环,它接受两个参数(循环回调函数,this的指向)
arr.forEach(function(val,index,arr){
console.log(val,index,arr);
},this);
2. map
正常情况下,需要配合return,返回的是一个新数组; 若是没有return,则相当于forEach; 注意:平时只有用map一定要有return,没有就用forEach就可以
重新整理数据结构:
let arr = [
{title:'aaaaa', read:100, hot:true},
{title:'bbbb', read:100, hot:true},
{title:'cccc', read:100, hot:true},
{title:'dddd', read:100, hot:true}
];
let newArr = arr.map((item,index,arr)=>{
var json = {};
json.t = `~~${item.title}----`;
json.r = item.read/2;
json.h = item.hot == true && '666;
});
console.log(newArr);
3. filter
过滤,过滤一些不合格 “元素”;如果回调函数返回true,就留下来;
let arr = [
{title:'aaaaa', read:3, hot:true},
{title:'bbbb', read:4, hot:false},
{title:'cccc', read:5, hot:true},
{title:'dddd', read:6, hot:false}
];
let newArr = arr.filter((item, index, arr)=>{
return item.read > 4;
});
console.log(newArr);
4. some
有点去比对去查找的感觉,数组里面某一个元素符合条件就返回true
5. every
数组里面所有元素都符合条件才返回true
6. reduce
从左向右
let arr = [1,2,3,4,5,6,7,8,9,10];
let res = arr.reduce((prev, cur, index, arr) =>{
console.log(prev,cur)
return prev+cur;
});
console.log(res);
5. reduceRight
从右向左