数组转换到对象 [英] Convert Array to Object
本文介绍了数组转换到对象的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
什么是转换的最佳方式:
['一','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屋!
查看全文