Не удается получить значение после filter () в Javascript - PullRequest
0 голосов
/ 19 марта 2020

Я хочу получить значение отфильтрованного массива. В отладчике он показывает, что я могу найти значение в массиве, которое возвращает только один результат, который желателен, после того как я присвоил другое значение, которое я получил неопределенным, почему это так? Я использовал его так же, как раньше.

let originalpost = raw.filter(a => a.id == id); // one record shown
let topic = originalpost.title;// undefine

ранее я сделал это

  let data = raw.filter(a => a.ParentItemID == id);// an array of records retrieved

// later I can use its data....
// e.g. data.title ....

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Фильтр всегда получит вам массив объектов. Для получения только одного значения вы должны использовать Find .

. Следует примеру:

const values = [
    {id:1, name:"first"},
    {id:2, name:"second"}
];

console.log(values.filter(element => element.id === 2));
console.log(values.find(element => element.id === 2));
0 голосов
/ 19 марта 2020

.filter возвращает результаты в массиве, поэтому один результат означает, что массив начинается с 0, таким образом

let originalpost = raw.filter(a => a.id == id); // one record shown
let topic = originalpost[0].title;// undefine
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...