SOURCE

// 数组API 迭代方法,遍历元素

// 1. forEach , map
// 2. every , some
// 3. filter , find , findIndex
// 4. reduce

// forEach   没返回值
const arr = [1, 2, 3, 4, 5, 6]
arr.forEach(function (item, key, arr) {
    console.log(item)
    // console.log(item, key, arr)
    //只有item是必需有的
    return item
})

console.log('---------------')

// map 有返回值
let result = arr.map(function (item, key, arr) {
    // console.log(item*2)
    return item * 2
})
console.log(result)

console.log('---------------')

// every , some : 断言/判断 , true / false
// arr = [1, 2, 3, 4, 5, 6]
// every() 全部都满足返回 true , 否则 false
// 全部大于0
arr.every(function (item) {
    console.log(item > 0)
})
// 箭头函数
console.log(arr.every(item => item > 0))  //全部大于0 true
console.log(arr.every(item => item > 3))  //全部大于3 false

// some() 只要有一个条件满足,就返回 true
console.log(arr.some(item => item > 3))
console.log(arr.some(item => item > 10))

console.log('---------------')

// filter 将满足条件的元素打包到一个数组中返回
console.log(arr.filter(item => item > 3)) //4,5,6
console.log(arr.filter(item => item > 3)[0]) //4
console.log(arr.filter(item => item > 3)[1]) //5
// find 找到第一个就返回
console.log(arr.find(item => item > 3)) //4
console.log(arr.findIndex(item => item > 3)) //索引4,值3

console.log('-----------------')

// reduce : 归并
/**
* reduce 参数
* 1.回调函数
* 2.初始值,如0,''
*/

/**
 * 
 *  回调参数说明:
 *  1. acc: 累加器,结果不断的累加给它,最终返回也是它
 *  2. cur: 当前元素
 *  3. key: 当前元素的索引
 *  4. 当前正在遍历的数组
 *  cur , key , arr , 与之前的迭代方法参数一样
 * 
 */
// arr.reduce(function (acc, cur, key, arr) { }, init)
// arr = [1, 2, 3, 4, 5, 6]

result = arr.reduce(function (acc, cur, key, arr) {
    return acc + cur // 数组累加
}, 0)
console.log(result)

result = arr.reduce(function (acc, cur, key, arr) {
    // acc,arr 是必选参数
    // 观察过程
    console.log(`acc=${acc}, cur=${cur}, key=${key},arr=${arr}`)
    return acc + cur
}, 0)
console.log(result)

// arr.reduceRight 反向

console.log('---------------------')

result = arr.reduceRight(function (acc, cur) {
    console.log('<li>' + acc + '</li>')
    return acc + cur
}, '')


console 命令行工具 X clear

                    
>
console