как глубоко можно найти - PullRequest
0 голосов
/ 21 мая 2018

Я знаю, что могу легко найти find как

answers.find(question => question.questionId === displayingQuestionId)

, но моя структура:

answers: [
  {questionId: 0000,
   answers: [{title: 'answer1'},{title: 'answer2'}]
]

, так как я могу использовать find в этом:

гдеЯ хочу найти идентификатор вопроса, который совпадает с идентификатором вопроса для ответов

Я понимаю, что это довольно странно

answers.find(question => question.answers.questionId === displayingQuestionId)

что-то подобное ^ за исключением того, что не работает...

1 Ответ

0 голосов
/ 21 мая 2018

Таким образом, вы можете получить собственность настолько глубоко, насколько захотите.Но вы не можете просто использовать question.answers.questionId для правильного сравнения.Очевидно, что каждая петля .find даст вам объект верхнего уровня.После того, как вы можете делать с этим все, что вы хотите.

Пример:

let arr = [{'questionId': 0000, 'answers': [{'title': 'answer1'},{'title': 'answer2'}]}];

//returns object of the top level if questioned equals to 0

arr.find((answer) => answer.questionId === 0);

//comparison with the internal array elements
//returns answer if one of the internal answers has title 'answer 1'

arr.find((answer) => !!answer.answers.find((internalAnswer => internalAnswer.title === 'answer1')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...