Я пытаюсь выяснить, в Type Script
как получить один элемент из this.myList
другим элементом.Если я добавлю элементы к private myList: any = [];
таким образом:
this.myList.push({ id: i, name: myName, UID: obj.UID },);
, где id: i
- это номер итерации цикла, name: myName
- это имя пользователя, а UID: obj.UID
- это непоследовательный номер, тогда *Содержание 1010 * выглядит примерно так:
id| myName | UID
-------------------
0 | sally | 345
1 | vikram | 5487
2 | kim | 12
3 | roy | 2134
Моя цель и желаемый результат - найти значение ID: obj.ID
по myName
.Например, получить UID
значение: 12 от myName
: ким
, если я использую его таким образом, это работает с заданным списком:
let a = [{id: 0, name: 'sally', uid: 345}, {id: 1, name: 'vikram', uid: 5487}, {id: 2, name: 'kim', uid: 12}, {id: 3, name: 'roy', uid: 2134}];
let wantedname = 'kim';
let found = a.find(e => e.name === wantedname);
found.uid;
но если я пытаюсь использовать его со своим реальным списком, я получаю ERROR TypeError: Cannot read property 'uid' of undefined
:
с пробелом, потому что у меня есть пробел в значениях флажков:
val srcVal = ' ' + this.searchName;
или даже без пробела:
val srcVal = this.searchName;
let found = this.myList.find(e => e.name === srcVal);
или:
let a = this.myList;
let found = a.find(e => e.name === srcVal);
В console.log("Name: " + this.searchName, " UID: ", found.uid );
found.uid
равно undefined
.
Это та же структура, не уверен, что с ней не так