Actualmente tengo este conjunto:
Set1 = { Alpha: [One, Two], Beta: [One, Two, Three], Delta: [One] }También tengo esta matriz de elementos:
Arr1 = [Alpha_One, Beta_One, Beta_Two, Delta_One]Estoy buscando una manera de eliminar mediante programación todos los elementos que se encuentran en este conjunto en su matriz respectiva, así:
Set1 = {Alpha: [Two], Beta: [Three], Delta: []} Hasta donde yo sé, el método forEach() no acepta sentencias if, por lo que no sé si hay otro método para hacerlo.
Solo encuentra el índice y el empalme.
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);Divida su Arr1 y empalme el elemento de la tecla exacta
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)