好的,所以我有一个对象的搜索结果数组,其中一个对象属性值(显示值)与搜索匹配。该数组的结构如下,可以包含任意数量的不同对象:
results = [
{
day: value,
time: value,
show: value,
sid: value,
network: value,
title: value,
ep: value,
link: value,
}
];
我正在尝试将所有结果合并到一个大对象中,合并具有相同值的任何日期或时间。但是,我不能简单地独立查看每一天或每一时间的价值。例如,如果周二也有晚上 9:00,我需要保留周一晚上 9:00。
为此,我试图创建一个新的对象结构,如下所示:
for ( var i=0; i<results.length; i++ ) {
var uniqtime = results[i]["time"];
var uniqshow = results[i].show;
uniqresults[results[i].day] = {
uniqtime: {
uniqshow: {
sid: results[i].sid,
network: results[i].network,
title: results[i]["title"],
ep: results[i].ep,
link: results[i]["link"]
}
}
};
}
但显然这不起作用,因为变量子对象键名被视为字符串。
如果我尝试像这样创建变量子对象/键:
for ( var i=0; i<obj.length; i++ ) {
uniqresults[results[i].day] = {};
uniqresults[results[i].day][results[i]["time"]] = {};
uniqresults[results[i].day][results[i]["time"]][results[i].show] = {
sid: obj[i].sid,
network: results[i].network,
title: results[i]["title"],
ep: results[i].ep,
link: results[i]["link"]
};
}
我确实可以创建正确的键名,但我不得不声明一个空对象来定义每个键(uniqresults[obj[i].day] = {}
& uniqresults[obj[i].day][obj[i]["time"]] = {}
)。如果我不这样声明,它不会让我插入我需要的其他子键/值。但是,像这样声明不允许我正确合并我的结果数组,因为每次读取新结果对象时我基本上都会清空子键名称!
也许我让这比它应该的更复杂。也许有一种更简单的方法,或者下划线或 jquery 可以简化我手头的任务。无论如何,我现在非常渴望找到合适的解决方案。