我是JavaScript的初学者。我有一个长度为[2,6,8,5]
的数组。我想计算另一个代表每个元素位置的数组。 ex:[1,3,9,17,22]
其中1是第一个元素的位置,3是第二个元素的位置如何计算javascript中的位置数组?
(1 + 2), 9 = (1 + 2 + 6) … and 22 (1 + 2 + 6 + 8 + 5)
。 感谢你的帮助
我用这个,但我不舒尔这个
我是JavaScript的初学者。我有一个长度为[2,6,8,5]
的数组。我想计算另一个代表每个元素位置的数组。 ex:[1,3,9,17,22]
其中1是第一个元素的位置,3是第二个元素的位置如何计算javascript中的位置数组?
(1 + 2), 9 = (1 + 2 + 6) … and 22 (1 + 2 + 6 + 8 + 5)
。 感谢你的帮助
我用这个,但我不舒尔这个
你可以减少阵列和一个的起始值开始,最好的办法
var lengthOfWords = [2,6,8,5];
var subPosition = 0 ;
var positionOfWords = [1]
for (var x = 0; x < lengthOfWords.length; x++) {
\t subPosition += lengthOfWords[x];
\t positionOfWords[x+1] = subPosition +1 ;
}
console.log(positionOfWords);
last a sum result ---- ---- ---- --------------- 1 1 2 3 1, 3 3 6 9 1, 3, 9 9 8 17 1, 3, 9, 17 17 5 22 1, 3, 9, 17, 22
var array = [2, 6, 8, 5],
result = array.reduce((r, a) => r.concat(r[r.length - 1] + a), [1]);
console.log(result);
ES5
var array = [2, 6, 8, 5],
result = array.reduce(function (r, a) {
return r.concat(r[r.length - 1] + a);
}, [1]);
console.log(result);
这段代码的工作原理似乎比我的要快,但我使用的插件(ECMASCript 5.1)似乎并不支持胖箭头功能。 –
@SylvainParent,你可以使用标准功能的ES5版本。 –
谢谢!现在我的作品将尝试了解它是如何工作的 –
你有什么尝试到目前为止? – arsho
*“职位”*是什么意思? – charlietfl
欢迎来到SO。请理解,SO不是免费的编码服务。你必须尝试自己解决问题。如果无法正常工作,请发布您尝试的内容,我们会帮助您解决问题。 –