8

私はnodejsとmongodbが初めてです。私の問題は、次のタイプのjsonがあることです

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

ここで、タイプ「宿題」のスコアを比較し、スコアが最も低い宿題を削除します。これを解決するために、次のようなコードを書きました

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 でのみ機能します。誰でも私がそれを解決するのを助けることができますか?

4

2 に答える 2

30

splice次のように使用します。

doc.scores.splice(index, 1);
于 2013-08-28T20:03:12.437 に答える
2

splice()メソッドは、既存の要素を削除したり、新しい要素を追加したりして、配列の内容を変更します。

インデックス3から1要素を削除したい場合は、これを試してください

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

// removed is ["mandarin"]
// myArray is ["angel", "clown", "drum", "sturgeon"]
于 2017-05-06T10:47:13.667 に答える