![](/img/trans.png)
[英]How to render array entries in JSX using map() function with conditional wrapping
[英]Using conditional map function to transform array
我有一个数字数组,我想映射到一个新的数字数组。
let numbers= [1,3,5,10,11]
需要变成
var result = [4,8,15,21,11];
我尝试使用ES6速记语法来做到这一点。 但是数字之间确实没有任何连贯性,所以我虽然回调会更好
let numbers= [1,3,5,10,11]
const result = numbers.map(x => resultBinding(x))
function resultBinding(x){
}
现在我的问题是我不想避免避免做出很多if语句来确定每个值。
我将使用reduce
来使用累加器来跟踪先前的数组值:
const result = [];
array.reduce((a, b) => (result.push(a + b), b));
result.push(array.pop()); // add the trailing 11
使用Array.map()
对其进行迭代。 合并当前项和下一项(如果未定义,则为0):
const numbers= [1,3,5,10,11] const result = numbers.map((n, i) => n + (numbers[i + 1] || 0)); console.log(result);
结果的运算= [1 + 3、3 + 5、5 + 10、10 + 11、11]。 结果的最后一个索引与numbers数组相同,因为此后没有索引。
let numbers= [1,3,5,10,11]; let result = numbers.map((num, index)=> (index+1) >= numbers.length ? num : num + numbers[index+1]) console.log(result);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.