Хорошо, поэтому у меня есть массив результатов поиска объектов, где одно из значений свойств объекта (показать значение) соответствует поиску. Структура этого массива следующим образом и может содержать любое количество различных объектов:Как создать переменные ключи объектов из объектных ключей объектов?
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 может упростить мою задачу под рукой. Несмотря на это, я сейчас очень отчаянно нуждаюсь в правильном решении.
Хорошее использование промежуточных переменных, чтобы избежать длительного доступа вложенных массивов. – IMSoP