-1
私は上記のコードを使用しており、idに基づいてアイテムを削除しています
最大配列長に達したときにi + 1アイテムを比較しているときにidが定義されていません。 あなたの助けをお待ちしています....javascriptの配列から重複したオブジェクトを削除する方法
var arr = [{"id":"0-block-0","left":206.5,"top":0},{"id":"0-block-1","left":446.5,"top":0},{"id":"0-block-2","left":474.5,"top":16},{"id":"0-block-2","left":686.5,"top":0}];
Expecting outout = [{"id":"0-block-0","left":206.5,"top":0},{"id":"0-block-1","left":446.5,"top":0},{"id":"0-block-2","left":686.5,"top":0}]
Array.prototype.unique = function(){
var passNum = this.length;
var _self = this;
// to repeat loops n*n times
while(passNum>0){
for(var i = 0;i<this.length;i++) {
if(this[i].id==this[i+1].id){
var _indx = this.indexOf(this[i]);
this.splice(_indx,1);
}
}
passNum = passNum-1;
}
return this;
};
なぜあなたは同じIDの2番目を取得しますか? –
一意性を保証する通常の方法は、IDをセットに入れることです。 – Dave