可能重复:
Convert flat array [k1,v1,k2,v2] to object {k1:v1,k2:v2} in JavaScript?
我想在JavaScript中将数组转换为关联数组。
例如,给出以下输入,
var a = ['a', 'b', 'c', 'd'];
我想将下一个关联数组作为输出:
{'a' : 'b', 'c' : 'd'}
我该怎么做?
答案 0 :(得分:15)
使用.forEach
:
var a = ['a', 'b', 'c', 'd'];
var obj_a = {};
a.forEach(function(val, i) {
if (i % 2 === 1) return; // Skip all even elements (= odd indexes)
obj_a[val] = a[i + 1]; // Assign the next element as a value of the object,
// using the current value as key
});
// Test output:
JSON.stringify(obj_a); // {"a":"b","c":"d"}
答案 1 :(得分:6)
尝试以下方法:
var obj = {};
for (var i = 0, length = a.length; i < length; i += 2) {
obj[a[i]] = a[i+1];
}
答案 2 :(得分:2)
没有关联数组这样的东西,它们被称为Object
,但几乎完全相同: - )
以下是您进行转化的方式
var obj = {}; // "associative array" or Object
var a = ['a', 'b', 'c', 'd'];
for(index in a) {
if (index % 2 == 0) {
var key = a[index];
var val = a[index+1];
obj[key] = val;
}
}