Массив включает по - PullRequest
       64

Массив включает по

1 голос
/ 21 октября 2019

У меня есть два массива объектов.

Я делаю сравнение по идентификатору и доступности

Например,

   let newCars = []
   cars.forEach((car) => {        
      const element = _.find(this.state.cars, function(o) {
        return (o.id === car.id && (o.available < car.available))
      })
      if (element) {
        newCars.push(element)
      }    
    })

Однако я также хотел бы включитьв массиве newCars элементы, которых нет в this.state.cars, но которые сравниваются только по id.

Например, если у автомобилей есть {id: 1, available: 4} и this.state. В автомобилях {id: 1, доступно: 5}, они будут присутствовать в обоих массивах и не будут возвращены.

В общем, мне нужны все элементы в автомобилях, для которых car.available> car. доступно для элемента с таким же идентификатором в this.state.cars, а также для всех элементов в автомобилях, которые не включены в this.state.cars, которые выполняют сравнение только по id.

Возможно ли это? (Uisng lodash или обычный js)

Спасибо

1 Ответ

2 голосов
/ 21 октября 2019

Попытайтесь найти элемент, если он не найден, добавьте его, если он найден и для него требуется наличие, также добавьте его.

   let newCars = []
   cars.forEach((car) => {        
      const element = _.find(this.state.cars, function(o) {
        return o.id === car.id
      })
      if (!element || element.available < car.available) {
        newCars.push(car)
      }    
    })
...