ES6 数组循环
一.
1.for(let i = 0 ; i< arr.length ; i++)
while
二.forEach() --> 代替普通for循环
三个参数: val当前遍历到的数据 ,index 当前遍历到的数据的序号,arr当前遍历的数组
let arr = ['apple', 'banana', 'orange'];
arr.forEach(function(val, index, arr){
console.log(val,index,arr);
});
-->输出
apple 0 ['apple', 'banana', 'orange']
banana 1 ['apple', 'banana', 'orange']
orange 2 ['apple', 'banana', 'orange']
三.map()--> 做数据交互“映射”
1. 返回的是一个新数组 , map() 方法不会改变原数组 需要配合return , return的值会将原数组中的对应值替换掉
2.平时只要用map() 一定要有return
let arr = [
{title:'aaa', read:100, hot:true},
{title:'bbb', read:100, hot:true},
{title:'ccc', read:100, hot:true},
{title:'ddd', read:100, hot:true}
];
let newArr = arr.map((item,index,arr)=>{
console.log(item,index,arr);
return 1;
});
console.log(newArr);
-->返回四个1的数组
3. 若是没有return 相当于 forEach()
let arr = [
{title:'aaa', read:100, hot:true},
{title:'bbb', read:100, hot:true},
{title:'ccc', read:100, hot:true},
{title:'ddd', read:100, hot:true}
];
arr.map((item,index,arr)=>{
console.log(item,index,arr);
});
四. filter()---> 过滤
1. filter方法的return只有两种情况 ,true/false 如果返回true就保留这个数据 如果返回false 就删除这个数据 也是返回新数组 不改变原数组
newarr = [65,76,88];
2.过滤一些不合格"元素" , 如果回调函数 返回true 就留下来
let arr = [
{title:'aaa', read:100, hot:true},
{title:'bbb', read:100, hot:false},
{title:'ccc', read:100, hot:true},
{title:'ddd', read:100, hot:false}
];
let newArr = arr.filter((item,index,arr)=>{
return item.hot == true;
});
console.log(newArr);
五.some()--> 类似查找 数组里面某一个元素符合条件 返回true
let arr = ['apple', 'banana', 'orange'];
let b = arr.some((val, index, arr)=>{
return val == 'banana';
});
console.log(b);
-->输出true
-
findInArray函数封装
let arr = ['apple', 'banana', 'orange'];
function findInArray(arr, item){
return arr.some((val, index, arr)=>{
return val == item;
})
}
findInArray(arr, 'orange');
-->返回true
六. every()--> 数组里面所有的元素都要符合条件 才返回true
判断数组内部是否都为奇数
let arr = [1,3,5,7,10];
let a = arr.every((val, index, arr)=>{
return val % 2 == 1;
});
console.log(a);
-->false