2016-06-08 5 views
-2

Ich habe die folgenden zwei Felder:So entfernen Sie Objekte aus einem Array-Werten, die in einem anderen einfachen Array vorhanden sind (jquery)

SimpleArray = [2,3]; 
ObjectArray = [{ 
    id: 1, 
    name: 'charles' 
},{ 
    id: 2, 
    name: 'john' 
},{ 
    id: 3, 
    name: 'allen' 
},{ 
    id: 4, 
    name: 'jack' 
}]; 

Ich möchte in ObjectArray Objekte zu entfernen, die ids haben gleich die in SimpleArray vorhandenen Werte.

+0

Schleife durch 'ObjectArray' und Elemente entfernen, wo der' id' ist in 'SimpleArray' –

+0

Possible Duplikat [entfernt Elemente aus dem Array JavaScript (im Gegensatz Kreuzung)] (http://stackoverflow.com/questions/29715271/entfernt-elements-from-array-javascript-converse-intersection) – 1983

Antwort

0

Wenn Sie Daten aus Original-Array löschen wollen, dann verwenden Array#splice() Methode

SimpleArray = [2, 3]; 
 
ObjectArray = [{ 
 
    id: 1, 
 
    name: 'charles' 
 
}, { 
 
    id: 2, 
 
    name: 'john' 
 
}, { 
 
    id: 3, 
 
    name: 'alen' 
 
}, { 
 
    id: 4, 
 
    name: 'jack' 
 
}]; 
 

 
for (var i = 0; i < ObjectArray.length; i++) { 
 
    if (SimpleArray.indexOf(ObjectArray[i].id) > -1) { 
 
    ObjectArray.splice(i, 1); 
 
    i--; 
 
    } 
 
} 
 

 
console.log(ObjectArray);


Wenn es notwendig ist, um neue gefilterte Array zu erzeugen dann Array#filter() Methode

verwenden

SimpleArray = [2, 3]; 
 
ObjectArray = [{ 
 
    id: 1, 
 
    name: 'charles' 
 
}, { 
 
    id: 2, 
 
    name: 'john' 
 
}, { 
 
    id: 3, 
 
    name: 'alen' 
 
}, { 
 
    id: 4, 
 
    name: 'jack' 
 
}]; 
 

 
var res = ObjectArray.filter(function(v) { 
 
    return SimpleArray.indexOf(v.id) > -1 
 
}) 
 

 
console.log(res);

+0

Genau das, was ich gesucht habe. Vielen Dank. @Pranav C Balan – Taahaa

+0

@Taahaa: froh, Ihnen zu helfen :) –

Verwandte Themen