2016-08-22 17 views
2
> var lst = ['red', 'blue', 'yellow']; 
> someFunc(lst); 
[('red', 0), ('blue', 1), ('yellow', 2)] 

Javascript/JQueryでこれを行う方法はありますか?私は単純にforループを作成し、元のリストの要素をそれぞれ私が望むものに変換することができることを知っていますが、これを行う方法が組み込まれているかどうかは疑問でした。Javascript - 配列/リスト内の各要素のインデックス

ありがとうございます!

+1

UM、オブジェクトが必要ですか?ネストされた配列?その出力は意味がありません – epascarello

+1

'lst.map(function(v、i){return {value:v、index:i}})'を意味しますか? – haim770

+0

各要素にインデックスを置く何かがオブジェクトである可能性があります。 –

答えて

2

Array#mapを使用して、値とインデックスを持つ配列を各項目に返すことができます。

var lst = ['red', 'blue', 'yellow'], 
 
    array = lst.map(function (a, i) { return [a, i]; }); 
 

 
console.log(array);

+0

です!コンマはセミコロンでなければなりません、そうですか? –

+0

どのカンマが動作しませんか? –

+3

いいえ、Ninaは2つの変数を宣言しています。これは、 'var lst ... 'を書くための省略形です。 var array ...; ' – Alex

0

あなたは配列にあなたの両方の値と、各項目の指標を提供しているmap()機能を活用することができます

lst.map(function(v, i) { return { value: v, index: i }; }); 

はでMDN

0

を参照してください。 ES6の地図方法:

var lst = ['red', 'blue', 'yellow']; 
var array = lst.map((item, index) => [item, index]) 
console.log(array); // [ [ 'red', 0 ], [ 'blue', 1 ], [ 'yellow', 2 ] ] 
関連する問題