gpt4 book ai didi

javascript - 如果存在于另一个对象数组中,则从对象数组中的数组中删除元素

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:50:55 24 4
gpt4 key购买 nike

我正在处理大量对象。我已将我的数据结构简化为以下内容。每个对象都有一个 id,每个 id 都有两个与之关联的数组 type1type2

const arr = [{id: "12345", type1: ["Hat 1", "Hat 3"], type2: ["Hat 2", "Glove 4"]}, 
{id: "12345", type1: ["Glove 1", "Hat 1"], type2: ["Glove 3", "Hat 2"]},
{id: "54321", type1: ["Jacket 1", "Hat 4"], type2: ["Hat 3", "Hat 4"]},
{id: "54321", type1: ["Glove 2", "Hat 2"], type2: ["Glove 3", "Jacket 4"]},
{id: "13579", type1: ["Hat 1", "Hat 2"], type2: ["Hat 3", "Hat 4"]},
{id: "13579", type1: ["Glove 1", "Glove 2"], type2: ["Glove 3", "Glove 4"]}]

我有一个“查找”对象数组。每个对象都有一个 id 和一个 title

const lookup = [{id: "12345", title: "Hat 1"},
{id: "12345", title: "Hat 2"},
{id: "12345", title: "Glove 3"},
{id: "54321", title: "Hat 3"}
{id: "54321", title: "Jacket 4"},
{id: "54321", title: "Glove 5"},
{id: "13579", title: "Hat 2"},
{id: "13579", title: "Jacket 3"}]

我需要为任何具有 title 的匹配 ID 使用“查找”对象 我需要将其从 type1 或 type2 或两者中删除。所以我得到的对象数组看起来像这样

const result = [{id: "12345", type1: ["Hat 3"], type2: ["Glove 4"]}, 
{id: "12345", type1: ["Glove 1"], type2: []},
{id: "54321", type1: ["Jacket 1", "Hat 4"], type2: ["Hat 4"]},
{id: "54321", type1: ["Glove 2", "Hat 2"], type2: ["Glove 3"]},
{id: "13579", type1: ["Hat 1"], type2: ["Hat 3", "Hat 4"]},
{id: "13579", type1: ["Glove 1", "Glove 2"], type2: ["Glove 3", "Glove 4"]}]

重复项以及必须在两个数组中搜索任何匹配的 ID 令我感到困惑。有没有一种简单的方法可以做到这一点,或者有更好的方法来构建数据以便它不那么复杂?

最佳答案

循环遍历arr,对于arr的每一个条目,循环遍历lookup比较和修改arr

  for(let arrEntry of arr) {
let id = arrEntry.id;
let type1 = arrEntry.type1;
let type2 = arrEntry.type2;

for(let lookupEntry of lookup) {
let title = lookupEntry.title;
if(lookupEntry.id === id && type1.includes(title)) {
type1.splice(type1.indexOf(title), 1);
}
if(lookupEntry.id === id && type2.includes(title)) {
type2.splice(type2.indexOf(title), 1);
}
}
}

console.log(arr)

关于javascript - 如果存在于另一个对象数组中,则从对象数组中的数组中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51977309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com