如何从一组数组中删除元素,这些元素连接到JavaScript中的字符串?



我现在有这个设置:

Set1 = {
Alpha: [One, Two], 
Beta: [One, Two, Three], 
Delta: [One]
}

我还有这个元素数组:

Arr1 = [Alpha_One, Beta_One, Beta_Two, Delta_One]

我正在寻找一种方法,以编程方式删除所有的元素,在这个集合中找到它的各自的数组,像这样:

Set1 = {Alpha: [Two], Beta: [Three], Delta: []}

据我所知,forEach()方法不接受if语句,所以我不知道是否有其他方法可以做到这一点。

找到索引并拼接。

let Set1 = {
"Alpha": ["One", "Two"], 
"Beta": ["One", "Two", "Three"], 
"Delta": ["One"]
};
let Arr1 = ["Alpha_One", "Beta_One", "Beta_Two", "Delta_One"];
Arr1.forEach(e=>{
let t = e.split('_');
if(Set1.hasOwnProperty(t[0])){
var index = Set1[t[0]].indexOf(t[1]);
if (index !== -1) {
Set1[t[0]].splice(index, 1);
}
}
});
console.log(Set1);

拆分Arr1并从精确键中拼接元素

const Arr1 = ['Alpha_One', 'Beta_One', 'Beta_Two', 'Delta_One'];
const Set1 = {
Alpha: ['One', 'Two'], 
Beta: ['One', 'Two', 'Three'], 
Delta: ['One']
};
const newArr = [];
Arr1.forEach(itemArr => {
newArr.push(itemArr.split('_'));
})
for (let key in Set1) {
newArr.forEach(itemArr => {
if (key === itemArr[0]) {
Set1[key].forEach((item, i) => {
if (item === itemArr[1]) {
Set1[key].splice(i, 1)
}
});
}
})
};
console.log(Set1)

相关内容

最新更新