数组转换到对象 [英] Convert Array to Object

查看:119
本文介绍了数组转换到对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么是转换的最佳方式:

  ['一','B','C']

  {
  0:'A',
  1:'B',
  2:'C'
}


解决方案

通过这样的功能:

 函数toObject(ARR){
  VAR RV = {};
  对于(VAR I = 0; I< arr.length ++ I)
    RV [I] =改编[I]
  返回rv;
}

您已经阵更是或多或少只是一个对象,但数组确实有一些有趣和特殊的行为相对于整数命名属性。上述会给你一个简单的对象。

修改的哦,你也可能要考虑到阵列中的漏洞:

 函数toObject(ARR){
  VAR RV = {};
  对于(VAR I = 0; I< arr.length ++ I)
    如果(ARR [I] ==未定义!)RV [I] =改编[I]
  返回rv;
}

在现代的JavaScript运行时,你可以使用。降低()方法:

  VAR OBJ = arr.reduce(函数(O,V,I){
  Ø[I] = V;
  返回O;
},{});

那一个也避免了数组中的漏洞,因为这是如何。降低()

What is the best way to convert:

['a','b','c']

to:

{
  0: 'a',
  1: 'b',
  2: 'c'
}

解决方案

With a function like this:

function toObject(arr) {
  var rv = {};
  for (var i = 0; i < arr.length; ++i)
    rv[i] = arr[i];
  return rv;
}

Your array already is more-or-less just an object, but arrays do have some "interesting" and special behavior with respect to integer-named properties. The above will give you a plain object.

edit oh also you might want to account for "holes" in the array:

function toObject(arr) {
  var rv = {};
  for (var i = 0; i < arr.length; ++i)
    if (arr[i] !== undefined) rv[i] = arr[i];
  return rv;
}

In modern JavaScript runtimes, you can use the .reduce() method:

var obj = arr.reduce(function(o, v, i) {
  o[i] = v;
  return o;
}, {});

That one also avoids "holes" in the array, because that's how .reduce() works.

这篇关于数组转换到对象的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆