Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组转换为类似数组的对象_Javascript_Arrays_Javascript Objects - Fatal编程技术网

Javascript 将数组转换为类似数组的对象

Javascript 将数组转换为类似数组的对象,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有一个数组,比如说[{id:'first'},{id:'second'}] 是否有我缺少的将数组转换为类似数组的对象的本机方法?我已经看到很多关于另一个方向的答案,并推荐Array.prototype.slice.call(或更新的Array.from),但我找不到有人问这个问题。对于上面的示例,我希望获得以下输出: { 0: { id: 'first' } 1: { id: 'second' } } 不是本机方法,但以下帮助器函数应起作用: var arr = [{ id: 'fi

我有一个数组,比如说
[{id:'first'},{id:'second'}]

是否有我缺少的将数组转换为类似数组的对象的本机方法?我已经看到很多关于另一个方向的答案,并推荐
Array.prototype.slice.call
(或更新的
Array.from
),但我找不到有人问这个问题。对于上面的示例,我希望获得以下输出:

{
  0: { id: 'first' }
  1: { id: 'second' }
}

不是本机方法,但以下帮助器函数应起作用:

var arr = [{ id: 'first' }, { id: 'second' }];

function toArrayLike(arrayToConvert) {
    var retVal = {};
    Object.keys(arrayToConvert).forEach(function(key) {
        retVal[key] = arrayToConvert[key];
    });
    return retVal
}

var arrayLike = toArrayLike(arr);
console.log(arrayLike);

不是本机方法,但以下帮助器函数应起作用:

var arr = [{ id: 'first' }, { id: 'second' }];

function toArrayLike(arrayToConvert) {
    var retVal = {};
    Object.keys(arrayToConvert).forEach(function(key) {
        retVal[key] = arrayToConvert[key];
    });
    return retVal
}

var arrayLike = toArrayLike(arr);
console.log(arrayLike);
减少它

var数组=[{id:'first'},{id:'second'}];
var obj=array.reduce((a,b,i)=>{返回a[i]=b,a},{})
console.log(obj)
减少它

var数组=[{id:'first'},{id:'second'}];
var obj=array.reduce((a,b,i)=>{返回a[i]=b,a},{})

log(obj)
您只需迭代
数组
并将值添加到相应的索引中即可
var arr=[{id:'first'},{id:'second'}];
变量集={};
arr.forEach(函数(值、索引){
设置[索引]=值;
})

log(set)
您只需遍历
数组
并将值添加到相应的索引中即可
var arr=[{id:'first'},{id:'second'}];
变量集={};
arr.forEach(函数(值、索引){
设置[索引]=值;
})

console.log(set)
使用array.reduce并自己编码?
新的set(array)
@user2415266也许你可以帮助他,因为他似乎是新手programming@Wade也许他可以在要求复印件之前先搜索一下question@user2415266在对新的贡献者和编程人员如此粗鲁之前,也许你应该先读一读这篇文章,然后使用array.reduce自己编写代码?
newset(array)
@user2415266也许你可以帮助他,因为他似乎是新手programming@Wade也许他可以在要求复印件之前先搜索一下question@user2415266也许你应该在对新撰稿人和编程人员如此粗鲁之前先读一读这本书!您应该使用
数组检查@adeneo的答案。reduce
,它做同样的事情,但使用javascript的内置方法nice解决方案!您应该使用
数组检查@adeneo的答案。reduce
,它做同样的事情,但使用javascript的内置方法