2017-10-08 15 views
0

私はJavaScriptの初心者です。私は長さ[2,6,8,5]の配列を持っています。私は各要素の位置を表す別の配列を計算したいと思います。 例:[1,3,9,17,22] 1は最初の要素の位置、3は2番目の要素の位置javascriptで位置の配列を計算するには?

(1 + 2), 9 = (1 + 2 + 6) … and 22 (1 + 2 + 6 + 8 + 5)です。 は、私がこれを使用するあなたの助け

ありがとうございましたが、私はこれをSHUREないです

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);

+1

これまでに試しましたか? – arsho

+1

*「位置」*はどういう意味ですか? – charlietfl

+1

ようこそ。 SOは無料のコーディングサービスではありませんのでご了承ください。自分で問題を解決しようとする試みが必要です。あなたがそれを働かせることができない場合は、あなたが試したものを投稿してください。 –

答えて

0

最良の方法であるあなたは、配列を削減し、1の開始値で開始でき、実際の値を追加するための最後の要素を取る。あなたが持っている何

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);

+0

このコードはうまく機能しているようですが、私が使用するプラグイン(ECMAScript 5.1)は太い矢印の機能をサポートしていないようです。 –

+0

@SylvainParent、あなたは標準機能でES5バージョンを利用しています。 –

+0

ありがとう!その作品は今私はそれがどのように動作するのか理解しようとする –

関連する問題