2013-08-28 22 views
8

Ich bin neu bei Nodejs und Mongodb. Mein Problem ist, ich habe eine json von folgenden ArtSo entfernen Sie ein Element aus dem JSON-Array

{ 
_id: 199, 
name: 'Rae Kohout', 
scores: [ 
    { type: 'exam', score: 82.11742562118049 }, 
    { type: 'quiz', score: 49.61295450928224 }, 
    { type: 'homework', score: 28.86823689842918 }, 
    { type: 'homework', score: 5.861613903793295 } 
] 
} 

Here I Punktzahl für den Typ ‚Hausaufgaben‘ und entfernen Sie die Hausaufgaben vergleichen wollen, die niedrigste hat score.To diese zu lösen Ich habe einige Code wie

geschrieben

Jetzt bin ich in der Lage, den Index für die niedrigste Punktzahl zu finden, und möchte Werte bei diesem Index entfernen. Ich habe versucht, Array.splice() -Methode zu verwenden, aber das funktioniert nur auf Array. kann mir jemand helfen, es zu lösen?

+0

Was Sie das Endergebnis wollen zu sein? 'scores' ist ein Array, Sie können also Spleiß verwenden. – dc5

Antwort

27

Verwenden splice etwa so:

doc.scores.splice(index, 1); 
+2

+1 Dies ist der richtige Weg, um ein Element aus einem Array zu entfernen. – Chad

+0

"Wenn die Spleißmethode mit zwei oder mehr Argumenten start, deleteCount und (optional) item1, item2 usw. aufgerufen wird, werden die deleteCount-Elemente des Arrays beginnend mit array index start durch die Argumente item1, item2 usw. ersetzt Das Array-Objekt, das die gelöschten Elemente enthält (falls vorhanden), wird zurückgegeben. "- http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.12 –

+0

Was soll ich tun, wenn ich es verschieben will? zu einer anderen json-Variable ?? –

2

Die splice() Methode, den Inhalt eines Feldes ändert, indem vorhandenen Elemente zu entfernen und/oder neue Elemente hinzugefügt wird.

wenn Sie möchten 1 Element entfernen aus dem Index 3. versuchen, diese

var myArray = ['angel', 'clown', 'drum', 'mandarin', 'sturgeon']; 
var removed = myArray.splice(3, 1); 

// removed is ["mandarin"] 
// myArray is ["angel", "clown", "drum", "sturgeon"] 
Verwandte Themen