0

変身したい

myArr = ["Abel","Bella","Corey"]

の中へ

myIndex = {"Abel": 1, "Bella":2, "Corey":3}

(できることはわかっています.indexOfが、効率的なルックアップ辞書を作成したいです)

素朴に私は次のようにします:

myIndex = {}
for(var i = 0; i < myArr.length; i++){myIndex[myArr[i]] = i;}

でも、地図でできればいい気がします。マップで何とかインデックスを渡すことはできますか?

4

1 に答える 1

1

map は配列を返すため、ここではArray.map()が適しているとは思いません。Array.forEach( )を使用できます。

var myArr = ["Abel", "Bella", "Corey"];
var obj = {};
myArr.forEach(function (val, idx) {
    obj[val] = idx;
})
console.log(obj)

.map()ハンドラーは、2 番目のパラメーターとして項目 indx を取得します

myArr.map(function (val, idx) {
    console.log(val, idx)
})

デモ:フィドル

于 2013-11-09T06:37:15.553 に答える