我想比较这两个数组,以获得食物中不存在的水果的ID和名称,并将结果保存在新数组中。
例如,我们在这里有橙子存在于food数组中,结果应该存储不存在于food中的水果的id和名称。(苹果和樱桃)
const fruits = [{id: '1', name: 'Apple'},
{id: '2', name: 'Orange'},
{id: '3', name: 'Cherry'}];
const food=[{id: '1', creation_date: '2023-05-13 09:46:25', created_by: '1'},
{id: '1', food_name: 'Orange'},
{id: '2', food_name: 'Bread'},
{id: '3', food_name: 'Chees'},
{id: '4', food_name: 'Milk'},
{id: '5', food_name: 'Salt'}
]
//Code that I tried:
var res = {};
var dep_data = [];
for (var j = 0; j < fruits.length; j++) {
for (var d = 0; d < food.length; d++) {
if (parseInt(fruits[j].id) != parseInt(food[d])) {
res["id"] = fruits[j].id;
res["name"] = fruits[j].name;
dep_data.push(res);
}
}
}
console.log(dep_data)
3条答案
按热度按时间imzjd6km1#
一个更简洁有效的版本是首先对foods进行
map
处理,得到一个名称数组,然后通过filtering
从foodNames
数组中删除name
值不是included
的fruits对象,创建一个新数组。pepwfjgg2#
你可以使用复杂度为O(n + m)的Set,比嵌套循环的O(n * m)更有效。
hsgswve43#