javascript - 数组包括

标签 javascript arrays reactjs lodash

我有两个对象数组。

我正在通过 id 和可用性进行比较

例如

   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 进行比较的元素。

例如,如果 cars 有 {id: 1, available: 4},而 this.state.cars 有 {id: 1, available: 5},则将被视为存在于两个数组中并且不会被返回。

总而言之,我需要 cars 中的所有元素 which car.available > car.available 用于 this.state.cars 中具有相同 id 的元素,此外,还需要 cars 中未包含在此的所有元素。 state.cars 仅通过 id 进行比较包含。

这可能吗? (使用 lodash 或纯 js)

谢谢

最佳答案

尝试查找元素,如果找不到则添加它,如果找到并且需要可用性也添加它。

   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)
      }    
    })

关于javascript - 数组包括,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58493669/

相关文章:

c++ - 检查数组中的总和是否可能

node.js - 从 Node.js Express 服务器发送图像路径到 React 客户端

javascript - 在哪里可以找到 _id.$oid 的 mongodb 文档?

javascript - AngularJS 关于在将两个相同的字符串插入数组时如何修复错误的建议

php - 用最高分对数组进行排序

javascript - 为什么我所在州的其他值被更改为未定义?

javascript - React 组件构造函数何时运行与生命周期相关?

javascript - 限制在 viewMode 设置为年的日期选择器上的选择

javascript - `react-router-dom` 没有渲染任何东西

javascript - 滚动轮播时需要出现文字