将数组转换为关联数组的函数

时间:2012-02-27 13:15:32

标签: javascript arrays associative-array

  

可能重复:
  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'}

我该怎么做?

3 个答案:

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