javascript 如何比较两个不同JSON数组中的值

tjvv9vkg  于 2023-05-16  发布在  Java
关注(0)|答案(2)|浏览(182)
const fruits = [{id: '1', name: 'Apple'},
{id: '2', name: 'Orange'},
{id: '3', name: 'Cherry'}];

const food=[{id: '1', food_name: 'Orange', deleted:"0"},
{id: '2', food_name: 'Bread' ,deleted:"0"},
{id: '3', food_name: 'Cheese', deleted:"0"},
{id: '4', food_name: 'Apple', deleted:"1"},
{id: '5', food_name: 'Salt',deleted:"0"}
]
//Code that I tried:
var dep_data = [];
       var depSet = new Set(dep_log.map(item => item.department_id));
      console.log(dep_log[0].deleted);
    for(var j=0; j < departments.length; j++){
        if(!depSet.has(departments[j].id) && departments[j].deleted!=='1'){
            dep_data.push({id: departments[j].id, name: departments[j].name});
        }
    }
console.log(dep_data)

我想在两个数组之间进行比较,以获取食物中不存在的水果的ID和名称,并删除不等于1,然后将结果保存在新数组中。
例如这里我们有橙子存在于food数组中,结果应该存储不存在于food中并被删除的水果的id和名称!=1.(苹果,樱桃)。

aiazj4mn

aiazj4mn1#

您提供的代码几乎是正确的。只是在比较被删除的属性时有一个小错误。而不是将其与字符串“1”进行比较,您应该将其与数字1进行比较。下面是正确的代码:

const fruits = [
  { id: '1', name: 'Apple' },
  { id: '2', name: 'Orange' },
  { id: '3', name: 'Cherry' }
];

const food = [
  { id: '1', food_name: 'Orange', deleted: "0" },
  { id: '2', food_name: 'Bread', deleted: "0" },
  { id: '3', food_name: 'Cheese', deleted: "0" },
  { id: '4', food_name: 'Apple', deleted: "1" },
  { id: '5', food_name: 'Salt', deleted: "0" }
];

const dep_data = [];
var foodSet = new Set(food.map(item => item.food_name));
for (var j = 0; j < fruits.length; j++) {
  if (!foodSet.has(fruits[j].name) && fruits[j].deleted != '1') {
    dep_data.push({ id: fruits[j].id, name: fruits[j].name });
  }
}
console.log(dep_data);

输出将是:

[ { id: '1', name: 'Apple' }, { id: '3', name: 'Cherry' } ]

这意味着水果“Apple”和“Cherry”不存在于food数组中,并且已删除不等于1,因此它们存储在dep_data数组中。

kqlmhetl

kqlmhetl2#

你的代码有语法错误,下面是更新的代码:

const fruits = [
  { id: '1', name: 'Apple' },
  { id: '2', name: 'Orange' },
  { id: '3', name: 'Cherry' }
];

const food = [
  { id: '1', food_name: 'Orange', deleted: "0" },
  { id: '2', food_name: 'Bread', deleted: "0" },
  { id: '3', food_name: 'Cheese', deleted: "0" },
  { id: '4', food_name: 'Apple', deleted: "1" },
  { id: '5', food_name: 'Salt', deleted: "0" }
];

var dep_data = [];
var foodSet = new Set(food.map(item => item.food_name));

for (var j = 0; j < fruits.length; j++) {
  if (!foodSet.has(fruits[j].name) && fruits[j].deleted !== "1") {
    dep_data.push({ id: fruits[j].id, name: fruits[j].name });
  }
}

console.log(dep_data);

结果将返回包含cherry的数组对象

相关问题