使用此代码,
h = {}
for (var i in [0,1]){ h[i.ToString] = i; }
我期望与h["1"] = 1
和h["2"] = 2
相同的结果。
为什么这段代码不起作用,如何在javascript中动态定义哈希键呢?
答案 0 :(得分:1)
JS中的for .. in
循环遍历键,而不是值(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in)。
所以在你的情况下,你迭代你在那里的数组的键
那些将是0,1,2 ......无论你放在那里。
你能做的事情就是这样:
var obj = {};
var data = [1,2,3,4];
data.forEach(function(val) {
obj[val] = val;
});