如何从javascript数组中优雅地创建从名称到索引的对象?

时间:2013-11-09 06:31:43

标签: javascript functional-programming

我想转型

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

但我觉得我应该可以用地图来做。我可以用地图以某种方式传递索引吗?

1 个答案:

答案 0 :(得分:1)

我认为Array.map()不适合这里因为map返回一个数组,你可以使用Array.forEach()

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

.map()处理程序将把项目indx作为第二个参数

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

演示:Fiddle