需求:数组长度为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);