Это безумие. Я читаю объект с веб-сервера и просматриваю его, и я могу добавить свойства к объекту. Но когда я пытаюсь сделать новую карту самостоятельно, она не работает. Так просто, как я могу это сделать
// from the server and works
plans: any[];
sourceByPlan: any[];
// my own map for other purposes I try to fill
// as I loop through the items from the server
customMap: any[]; // also tried 'any'
var res = JSON.parse(response);
this.plans = res.plans; // where res.plans looks like [{value: "id", label: "readableid"}, {value: "id2", label: "otherreadable"}]
this.sourceByPlan = res.sources; // where res.sources looks like { id: [Object, Object, Object...]};
// loop through each source and add a property
for(var i = 0; i < this.plans.length; i++){
if (this.sourceByPlan[this.plans[i].value]){
for (var j = 0; j < this.sourceByPlan[this.plans[i].value].length; j++){
var sObj = this.sourceByPlan[this.plans[i].value][j];
var status = this.getStatus(sObj); // simple string
sObj["newstatus"] = status; // THIS WORKS AS EXPECTED
// here is where the new non working code starts
var key = this.plans[i].value + status ; // looks like 'asdf1234pending'
if (!customMap[key]) {
customMap[key] = [];
}
customMap[key].push(sObj); // this will still be empty
}
}
}
sObj не поставляется со свойством sObj.newstatus с сервера, но позволяет мне добавить его по желанию. Я пытаюсь построить другую карту на лету, но каждый раз, когда я проверяю console.info(customMap), он каждый раз пуст. Логически это выглядит так же, как объект, который я получаю с сервера.
да, я отредактирую это



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы отправляете неопределенный объект на свою пользовательскую карту. Вероятно, вы захотите использовать sObj:
customMap[key].push(sObj);
Для проблемы, которая является простой опечаткой, это должен быть комментарий.
@ScottMarcus, почему ты так думаешь?
Потому что проблема заключалась в простой опечатке, и это на самом деле одна из причин, по которой мы закрываем вопросы. Как видите, @Pointy поступил правильно. Это наш общий способ решения подобных проблем.
@ScottMarcus Сделаю в следующий раз! Оставлю свой ответ здесь, чтобы другие люди тоже узнали об этом.
На самом деле, было бы лучше, если бы вы удалили свой ответ. Не все читают комментарии, и лучший способ избежать того, чтобы другие делали то же самое, — не иметь примеров того, как это делается. ;)
Это была опечатка в вопросе, а не в самом коде. Проблема осталась как обычно. Нет переменной obj, есть только sObj.
@Laurens, это не ответ. Как я уже сказал в ответ на комментарий, это не опечатка.
Что такое
obj? Я не вижу других упоминаний об этом. Это должен бытьsObj?