#arrays #typescript #for-loop #object #boolean
#массивы #typescript #for-цикл #объект #логическое
Вопрос:
Я получаю выбранные значения из выпадающего списка в angular через событие.
getSelectedValueList($event: any[]) {
console.log($event);
const ids = this.selectedIds($event);
console.log(ids);
}
Здесь мой console.log($event);
вывод выглядит следующим образом.
(3) [{…}, {…}, {…}]
0: {id: 3045, name: "US", isSelected: true, isDefault: false}
1: {id: 2755, name: "INDIA", isSelected: false, isDefault: false}
2: {id: 0, name: "None", isSelected: true, isDefault: false}
length: 3
Это мой selectedIds
метод.
selectedIds(list): any[] {
console.log(list);
console.log(list[2].isDefault);
const codeList: any[] = [];
for (const element of list) {
console.log(element);
if (element.isSelected) {
codeList.push(element.id);
}
}
console.log(codeList);
return codeList;
}
Здесь также мой console.log(list);
вывод выглядит так, как указано выше.
(3) [{…}, {…}, {…}]
0: {id: 3045, name: "US", isSelected: true, isDefault: false}
1: {id: 2755, name: "INDIA", isSelected: false, isDefault: false}
2: {id: 0, name: "None", isSelected: true, isDefault: false}
length: 3
Но если я console.log(element);
это дает каждый вывод, подобный этому. То isSelected: true
, что приходит, console.log(list);
отображается как false.
{id: 3045, name: "US", isSelected: false, isDefault: false}
{id: 2755, name: "INDIA", isSelected: false, isDefault: false}
{id: 0, name: "None", isSelected: false, isDefault: false}
В чем здесь проблема? Я не смог найти?
Комментарии:
1. Они не выбраны в пользовательском интерфейсе при проверке вашего журнала?
console.log(myObject)
будет динамически обновляться, если базовое значениеmyObject
изменяется, даже если есть часы, разделяющие журнал и вашу проверку журнала. Чтобы обойти это, попробуйтеconsole.log({...myObject})
вместо этого. При этом будет зарегистрирован клон объекта, который никогда не будет изменен. Я не знаю, является ли это вашей проблемой, но это то, что вы могли бы рассмотреть.2. В пользовательском интерфейсе они не отменяются
3. @user1713450 I
console.log({...myObject})
Это также дает тот же результат, что и выше4. Я не думаю, что это связано с проблемой, но, к вашему сведению, вы можете сделать свою
selectedIds
функцию намного проще:selectedIds(list): number[] { return list.filter(element => element.isSelected).map(element => element.id); }