loda sh .filter массив с подмассивом для значения поля - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть массив из многих json записей, каждый из которых содержит подмассив. Я хотел бы go через каждый массив и каждый его подмассив. есть поле, и если поле подмассива содержит значение, подобное 0, оно останавливается и возвращает значение true. в основном, остановите цикл и верните истину первого инцидента значения 0 для поля кода.

Вот моя структура массива / подмассива

[{id: 0, name: 'test0', mySubArray[{id:0, code: 0},{id:1, code: 1}, {id:2, code: 2} ] }
{id: 1, name: 'test1', mySubArray[{id:1, code: 1},{id:2, code: 2}, {id:3, code: 3} ] }
]

В настоящее время мой код

getExists() {
exist = this.rows.map(row => (this.doesValueExists(row.mySubArray)))

return exist
}

другим способом

doesValueExists(subArrray) {
 let result = _.filter(subArray, 'code', 0)

 return result
}

Используя loda sh, я попробовал что-то подобное, но это не сработало

const result = _.map(row, mySubArray => _.filter(mySubArray, 'code', 0))

Я не знаком с loda sh, но есть ли лучший способ сделать это вместо двух звонков?

Спасибо и оценил

1 Ответ

1 голос
/ 07 февраля 2020

В этом случае я бы использовал Array.some () метод и l oop через каждый массив и его подмассив до тех пор, пока «code» не станет равным 0. Код конца может выглядеть следующим образом:

const result = values.some(item => item.mySubArray.some(subArray => subArray.code === 0));

Значение «result» будет содержать «true», если одно из значений «code» вашего подмассива равно 0.

...