首页 > 解决方案 > JavaScript 如何映射两个不同的对象数组并有条件地返回一个数组

问题描述

您好我需要帮助在以下示例数组中动态创建 newProducts 而不知道其他两个数组中的内容 https://jsfiddle.net/od4267fv/ 更多解释:

我想检查

products = [
  {
    id: 1,
    name: 'product 1' ,
    liked:  false
  },
{
    id: 2,
    name: 'product 2' ,
    liked:  false
  },
  {
    id: 3,
    name: 'product 3' ,
    liked:  false
  },
  {
    id: 4,
    name: 'product 4' ,
    liked:  false
  },
  {
    id: 5,
    name: 'product 5' ,
    liked:  false
  },

]
likedProducts = [
   {
    id: 1,
    name: 'product 1' ,
    liked:  true
  },
{
    id: 2,
    name: 'product 2' ,
    liked:  true
  },
  {
    id: 3,
    name: 'product 3' ,
    liked:  true
  },

]
if proucts[product].id === likedProducts[product].id
newProducts.push(likedProducts[product])
else
newProducts.push(proucts[product])

请推荐合适的方法

标签: javascript

解决方案


试试这个

const allProducts = products.filter(n => likedProducts.find(n2 => n.id == n2.id));


推荐阅读