2013-08-28 24 views
8

私はnodejsとmongodbを初めて使っています。私の問題は、私は私がJSON配列から要素を削除するには

のようないくつかのコードを書いている私はこの問題を解決score.To最低持って宿題を型「宿題」のスコアを比較し、削除したいここで

{ 
_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 } 
] 
} 

タイプ次のJSONをしたあります

var low = ''; 
for(var i=0;i<doc.scores.length;i++) 
{ 
if(doc.scores[i].type == 'homework'){ 
    if(low == ''){ 
     low = doc.scores[i].score; 
    } 
    if(doc.scores[i].score > low){ 
    console.log("index for lowest score is " + i); 
    low = ''; 
    } 
} 
} 

ここで、最も低いスコアのインデックスを見つけて、そのインデックスの値を削除したいと考えています。私はArray.splice()メソッドを使用しようとしましたが、Arrayのみで動作します。誰も私がそれを解決するのを助けることができますか?そうのような

+0

最終的な結果になろうと、インデックス3から1つの要素を削除したい場合は? 'scores'は配列なので、spliceを使うことができます。 – dc5

答えて

27

使用splice

+2

+1これは、配列から要素を削除する適切な方法です。 – Chad

+0

"spliceメソッドが複数の引数start、deleteCount、および(オプションで)item1、item2などで呼び出されると、配列index startで始まる配列のdeleteCount要素は、引数item1、item2などで置き換えられます。削除された要素を含む配列オブジェクトが返されます。 " - http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.12 –

+0

移動するにはどうしたらよいですか別のjson変数に?? –

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

スプライス()方法は、既存の要素を除去し、および/または新たな要素を追加することによって、配列の内容を変更します。

あなたは、これはあなたが望む何

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

// removed is ["mandarin"] 
// myArray is ["angel", "clown", "drum", "sturgeon"] 
関連する問題