需求:数组长度为100,每一项为对应下标,累加求和。
切题思路:
1.如何声明一个长度为100的数组?答:new Array(100)
2.数组每一项如何比前一项+1 答:map(item,index)index为数组下标,即索引值
3.如何求和?答:reduce可以实现累加器,也可以实现累乘器
声明一个数组,长度为100,值为索引值,并且求和(reduce累加器)
-
实现方式一:map+reduce
-
/** * 实现思路一:map+reduce */ // 1.声明一个数组对象并且长度为100 // 2.数组的每一项为0 // 3.数字每一项为0改为相应的索引值 // 4.使用reduce的累加器 const myArr = new Array(100).fill(0).map((item, index) => { return index + 1 }) const total = myArr.reduce((total, num) => { return total + num }) console.log('myArr>>>', myArr, 'total>>>', total);
-
实现方式二:for循环+reduce
-
/** * 实现思路二:一个空数组,for+push */ let listArr = [] for (let i = 0; i < 100; i++) { listArr.push(i) } const total = listArr.reduce((total, num) => { return total + num }) console.log('listArr>>>', listArr,'total>>>',total);
-
实现方式三:map+reduce
/**
* 实现思路三:new Array()+join+split+map
*/
const newArr = new Array(100).join().split(',').map((item, index) => {
return index
})
const totalNum = myArr.reduce((total, num) => {
return total + num
})
console.log('newArr>>>', newArr,'total>>>',total);