/*
* ES6 标准 - 数组循环
* -----------循环-----------
* arr.forEach() 代替for循环
* arr.map() 非常有用,做数据交互“映射”。 ** 重新整理数据结构:
* 正常情况下,需要配合return,返回是一个新的数组
* 若是没有return,和forEach()一样
* arr.filter() 过滤,过滤一些不合格"元素",如果回调函数返回 true 则留下
* arr.some() 类似于查找。数组里面某一个元素符合条件,才返回true
* arr.every() 数组里面所有的元素都要符合条件,才返回true
* * 【方法】
arr.froEach/map...(循环回调函数,this指向(非必须)))
* * 【解析】
* ----------------------------------------------------------------------
* arr.reduce() 求数组的和、阶乘 (从左往右)
* arr.reduceRight() (从右往左)
* * 【方法】
arr.reduce((prev, cur, index, arr)=>{})
* */
let numAll = [2,2,3];
let num = numAll.reduceRight((prev, cur, index, arr)=>{
return prev ** cur; //幂 运算符 es 2017 新增的运算符 prev 的 几次方
})
console.log(num)
/*
* arr.forEach()【示例】
*
* */
let arr = [1,2,3,4];
for (let i = 0;i<arr.length;i++){}
arr.forEach(function(val, index, arr) { //代替普通for
// console.log(val, index, arr)
// console.log(this)
}.bind('123'))
/*
* arr.map()【示例】
*
* */
let json = [
{title:'aaa', read: 100, hot: true},
{title:'bbb', read: 100, hot: false},
{title:'ccc', read: 100, hot: true},
{title:'ddd', read: 100, hot: true},
];
let newArr = json.every((item, index, json)=>{
return item.read == 100
})
console.log(newArr)
// let newArr = json.some((item, index, json)=>{
// return item.hot
// })
// console.log(newArr)
// let newArr = json.filter((item, index, json)=>{
// return item.hot
// })
// console.log(newArr)
// let newArr = json.map((item, index, json)=>{
// let obj ={}
// obj.t = 'sdfasfsd';
// obj.r = item.read+200;
// obj.hot = item.hot == true && '真棒!!!';
// return obj
// })
// console.log(newArr)
/*
for of ES6新增的 循环
数组新增方法
arr.keys() 数组下标
arr.entries() 数组某一项
*/
let arr1 = ['apple','banana','orange']
console.log(arr1.entries())
for(let val of arr1){
console.log(val)
}
for(let index of arr1.keys()){
console.log(index)
}
for(let item of arr1.entries()){
console.log(item)
}
for(let [key,val] of arr1.entries()){
console.log(key,val)
}
网友评论