gpt4 book ai didi

JavaScript——如何遍历一个对象数组来创建一个新对象,其键是原始对象的初始键/值对的值

转载 作者:行者123 更新时间:2023-11-29 10:03:49 24 4
gpt4 key购买 nike

这是我的情况:

我必须实现一个函数“mapById”,当给定一个对象数组时,它返回一个对象,其中键是输入对象的 ID,值是相应的输入对象。

var input = [{id: 102, name: "Alice"},
{id: 205, name: "Bob", title: "Dr."},
{id: 592, name: "Claire", age: 32}];

console.log(mapById(input));

应该给出如下结果:

102: {id: 102, name: "Alice"},
205: {id: 205, name: "Bob", title: "Dr."},
592: {id: 592, name: "Claire", age: 32}

到目前为止,这是我的功能:

function mapById(list) {
var obj = {};
var objectKey = '';
list.forEach(function(item) {
objectKey = (Object.values(item)[0]);
var obj = {[objectKey]: item};
});
return obj;
}

我可以为原始数组中的每个对象获取一个新的键/值对,但我不知道如何将每个新的键/值对添加到新对象。

ObjectKey: 102
item: { id: 102, name: 'Alice' }
obj: { '102': { id: 102, name: 'Alice' } }
ObjectKey: 205
item: { id: 205, name: 'Bob', title: 'Dr.' }
obj: { '205': { id: 205, name: 'Bob', title: 'Dr.' } }
ObjectKey: 592
item: { id: 592, name: 'Claire', age: 32 }
obj: { '592': { id: 592, name: 'Claire', age: 32 } }

我该如何解决这个问题?如果这是一个数组,我可以使用“推”方法。对象有类似的方法吗?我需要关闭吗?我知道这是基本的东西,但我对 javascript 还很陌生。

谢谢。

最佳答案

你实际上很接近:

function mapById(list) {
var obj = {};
list.forEach(function(item) {
obj[item.id] = item;
});
return obj;
}

我会怎么做:

 const result = Object.assign(...input.map(el => ({[el.id] : el})));

关于JavaScript——如何遍历一个对象数组来创建一个新对象,其键是原始对象的初始键/值对的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48481248/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com