Проверьте массив объектов, чтобы увидеть, соответствует ли определенное свойство условию - PullRequest
0 голосов
/ 22 декабря 2018

У меня есть данные, где Report имеет массив Expenses, а каждый Expense имеет массив Returns.Я хочу проверить каждый Return, чтобы убедиться, что он удовлетворяет определенному условию.Это работает:

for (var expense of vm.report.Expenses) {
  if (text === "Process") { break; }
  if (expense.Returns.some(x => x.ExpenseReportId === vm.report.Id)) {
    text = "Process";
  }
};

Однако это похоже на старый способ ведения дел.Я пробовал concat, map и т. Д., Но, похоже, не могу его получить.Я просто хочу что-то вроде этого:

if (report.Expenses.Returns.some(x => ...))

Я не могу этого сделать, потому что Expenses - это массив, а также Returns.Как я могу легко проверить все свойства Returns для всех свойств Expense Report?

1 Ответ

0 голосов
/ 22 декабря 2018

Вы можете использовать вложенный Array.some().Когда во внутреннем предикате некоторые возвращают true, оба цикла заканчиваются и возвращают true.

Пример (не проверено):

if(vm.report.Expenses.some(e => 
  e.Returns.some(x => x.ExpenseReportId === vm.report.Id)
)) {
  text = 'Process';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...