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

Javascript 函数将数组转换为关联数组,javascript,arrays,associative-array,Javascript,Arrays,Associative Array,可能重复: 我想在JavaScript中将数组转换为关联数组 例如,给定以下输入 var a = ['a', 'b', 'c', 'd']; 我想获得下一个关联数组作为输出: {'a' : 'b', 'c' : 'd'} 我如何才能做到这一点?请尝试以下方法: var obj = {}; for (var i = 0, length = a.length; i < length; i += 2) { obj[a[i]] = a[i+1]; } var obj={}; 对

可能重复:

我想在JavaScript中将数组转换为关联数组

例如,给定以下输入

  var a = ['a', 'b', 'c', 'd'];
我想获得下一个关联数组作为输出:

  {'a' : 'b', 'c' : 'd'}
我如何才能做到这一点?

请尝试以下方法:

var obj = {};
for (var i = 0, length = a.length; i < length; i += 2) {
  obj[a[i]] = a[i+1];
}
var obj={};
对于(变量i=0,长度=a.length;i
使用:


没有关联数组这样的东西,它们被称为
Object
s,但它们的作用基本相同:-)

以下是您将如何进行转换

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

你是指一个物体?您希望数组成员是键还是值?嗯。。。它是一个关联数组,但使用类似数字的键。它类似于:
{1:a',2:b',3:c',4:d'}
@DavidRodrigues,但基于0,而不是基于1!实际上我想把上面的数组转换成var a=['a':'b','c':'d'];用这些细节编辑你的问题<代码>>长度< /代码>将是足够的,因为你正在跳2步。@ PIMVDB这样做是不正确的。考虑一个长度为1..Rig.Okely的数组,那么它将是代码> {“A”:未定义} /代码>,这可能比忘记密钥更好。我会警告,如“代码”>(Obj[fo)]的存在检查。…
甚至是
if(obj中的“foo”)。
,因为这些也会检测
obj
原型上的字段(例如,尝试
if(obj中的“toString”)。
)。为了安全起见,请使用
obj.hasOwnProperty(“foo”)
-这可以保证原型不会被检查。但是,同样地,将具有奇数个元素的数组转换为这样一个对象是没有意义的,因为在这种情况下没有清晰的对。很好,我不知道array.forEach()。它是否适用于所有浏览器?@gintas:仅适用于支持ES5的浏览器。但是你可以很容易地提供你自己的实现。但是你在做JSON.stringify(obj_a)@gintas“除了IE以外的所有现代浏览器”@ROB W,如果你能用纯javascript给出确切的实现。。
 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;
     }
 }