Tengo una matriz de claves que quiero eliminar los nodos de la matriz de objetos.
lo he intentado pero no funciona
if(attr_type === "Blush" || attr_type === "Tie Male" || attr_type === "Arm Female Brown" || attr_type === "Arm Female Grey" || attr_type === "Arm Male Brown" || attr_type === "Arm Male Grey" || attr_type === "Glasses Or Mask Female" || attr_type === "Glasses Or Mask Male" || attr_type === "Glasses Or Mask Male For Outfit" || attr_type === "Shoes Female" || attr_type === "Shoes Male" || attr_type === "Boy Shoes" || attr_type === "Girl Shoes" || attr_type === "Outfit Female Arm Grey" || attr_type === "Outfit Female Arm Brown" || attr_type === "Pants Female" || attr_type === "Pants Male" ) { delete attributes[i]; }este es un guion
[ 'Blush', 'Tie Male', 'Arm Female Brown', 'Outfit Female Arm Grey' ]Este objeto de matriz
[ { "trait_type": "Background", "value": "Yellow" }, { "trait_type": "Blush", "value": "None" }, { "trait_type": "Body Male Grey", "value": "Male Body Grey Color" } ]Esta es la matriz final
[ { "trait_type": "Background", "value": "Yellow" }, { "trait_type": "Body Male Grey", "value": "Male Body Grey Color" } ]La matriz puede tener muchas claves y el objeto de la matriz tiene muchos nodos.
Por favor ayuda
Gracias
iría por este camino -
const keyWords = [ 'Blush', 'Tie Male', 'Arm Female Brown', 'Outfit Female Arm Grey' ] const arr = [ { "trait_type": "Background", "value": "Yellow" }, { "trait_type": "Blush", "value": "None" }, { "trait_type": "Body Male Grey", "value": "Male Body Grey Color" } ] const keyWordsSet = new Set(keyWords); console.log(arr.filter(obj => !keyWordsSet.has(obj.trait_type)))¿Qué tal esto?
const array1 = [ 'Blush', 'Tie Male', 'Arm Female Brown', 'Outfit Female Arm Grey' ] const array2 = [ { "trait_type": "Background", "value": "Yellow" }, { "trait_type": "Blush", "value": "None" }, { "trait_type": "Body Male Grey", "value": "Male Body Grey Color" } ] console.log(array2.filter(a2 => !array1.includes(a2.trait_type)))Puede lograrlo usando Array.filter() junto con Array.includes() .
Demostración de trabajo:
const blackList = [ 'Blush', 'Tie Male', 'Arm Female Brown', 'Outfit Female Arm Grey' ]; const inputArr = [ { "trait_type": "Background", "value": "Yellow" }, { "trait_type": "Blush", "value": "None" }, { "trait_type": "Body Male Grey", "value": "Male Body Grey Color" } ]; const res = inputArr.filter((obj) => !blackList.includes(obj.trait_type)); console.log(res);