gpt4 book ai didi

javascript - 将属性 javascript 合并到新对象中

转载 作者:行者123 更新时间:2023-11-28 01:31:12 25 4
gpt4 key购买 nike

我有一个看起来像这样的数组对象(对象数量大约是原来的 100 倍)

var messages =[
{
date: "12-12-12",
time: "12:34:10",
name: "Wence",
message: "Howdy matey"
},
{
date: "12-12-12",
time: "12:34:10",
name: "Alice",
message: "Everything allright?"
}
{
date: "12-12-12",
time: "12:34:10",
name: "Wence",
message: "I'm fine and you?"
}];

通过这个对象,我想创建一个新的 key 对结构,如下所示:

{"wence":["Howdy matey","I'm fine and you?"],"Alice":["Everything allright?"]}

最佳答案

好的,我将再次从您新描述的输入和输出数据示例开始:

var messages = [{
date: "12-12-12",
time: "12:34:10",
name: "Wence",
message: "Hi Bob"
}, {
date: "12-12-12",
time: "12:34:10",
name: "Bob",
message: "Howdy partner"
} {
date: "12-12-12",
time: "12:34:10",
name: "Bob",
message: "Howdy matey."
}];

function structureMessages(list) {
var data = {}, item;
for (var i = 0; i < list.length; i++) {
item = list[i];
// if no entry for this name yet, initialize it to an empty array
if (!data.hasOwnProperty(item.name)) {
data[item.name] = [];
}
// add this message to the array for this name
data[item.name].push(item.message);
}
return data;
}


// convert the data format to be messages organized by name
var messagesByName = structureMessages(messages);
console.log(messagesByName["Wence"]);

仅供引用,对于上面的数据,这将创建一个如下所示的数据结构:

{Wence: ["Hi Bob"], Bob: ["Howdy partner", "Howdy matey."]}

对象中的每个键都是一个用户名。每个键的数据是该用户的消息数组。如果它是原始数组中的消息对象数组,它可能会更有用,因为这样您就可以获得日期和时间信息。您可以修改上面的代码来做到这一点,只需更改此行:

 data[item.name].push(item.message);

对此:

 data[item.name].push(item);

如果您这样做,对象中的每个键仍然是用户名,但每个键的数据是消息对象数组(其中包含消息,但也包含其他元数据)。

关于javascript - 将属性 javascript 合并到新对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22105125/

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