我有一个看起来像这样的对象:
message = {
date: "12-12-12"
time: "12:05:10",
name: "Wence",
message: "hey man how are u doing?"
}
现在,我想创建一个如下所示的新对象:
var messages = {"Wence":["hey man how are u doing?","Thanks. I'm fine too.", "are you up for a game of pokémon?"], "Bas":["Hey! Doing fine. How about you?","sure"]}
这样做之后,我需要循环通过对象并逐个过滤消息。我需要能够显示例如“Wence”或“Bas”在其消息中发送任何图片(数组中的值是1条消息)。我想这是最好的方法,但我愿意接受任何建议。
任何帮助都很受欢迎。
答案 0 :(得分:1)
您首先要创建一个空对象作为表格:
var messages = {} //creates a new empty object
您必须为每个用户初始化列表:
messages["Wence"] = [] //initialize Wence's messages to an empty list.
然后,当您需要时,您可以添加到此列表中 - 就像您对任何列表一样:
messages["Wence"].push("how are you?")
而且,当你需要时,你可以循环它。如果你想循环遍历每个用户的消息,你想要一个这样的嵌套循环:
for(var username in messages){
for(var i=0, len = messages[username].length; i<len; i++){
var msg = messages[username][i]
}
}
答案 1 :(得分:0)
尝试此功能:
function getMessagesByPerson(obj) {
var data = {}, item;
for (var i = 0; i < obj.length; i++) {
item = obj[i];
if (!data.hasOwnProperty(item.name)) {
data[obj.name] = [];
}
data[obj.name].push(obj.message);
}
return data;
}
这将完全返回您想要的输出。