Javascript 对对象数组进行排序以消除重复条目

Javascript 对对象数组进行排序以消除重复条目,javascript,asp.net,arrays,javascript-objects,arrayobject,Javascript,Asp.net,Arrays,Javascript Objects,Arrayobject,我有这个对象数组 var ArrTdsObjects = []; function TdMaster(id, HeaderTxt, CurrentIndex, SortOrder, Width, Color, BgColor) { this.id = id; this.HeaderTxt = HeaderTxt; this.CurrentIndex = CurrentIndex; this.SortOrder = SortOrder; this.Widt

我有这个对象数组

var ArrTdsObjects = [];

function TdMaster(id, HeaderTxt, CurrentIndex, SortOrder, Width, Color, BgColor) {
    this.id = id;
    this.HeaderTxt = HeaderTxt;
    this.CurrentIndex = CurrentIndex;
    this.SortOrder = SortOrder;
    this.Width = Width;
    this.Color = Color;
    this.BgColor = BgColor;
}
        ArrTdsObjects.push(new TdMaster(
                        CurTdID,
                        CurTdInnerTxt,
                        CurTdCellindex,
                        CurTdSortOrder,
                        CurTdWidth,
                        "color", "bgColor"
                                        )
                            );
在数组中添加了一些对象条目之后

我想根据
curTdID

含义:如果较高的单元号具有相同的
Id
,则数组中具有相同
Id
的第一个单元将被忽略

如果索引编号较低的数组项位于较高的单元格编号中,如何消除它们
意味着数组中最后添加的项将是要保存的项

从0到array.length遍历数组,并将对象添加到“哈希”(读取:javascript多态对象)。注意:

var objects = [...];
var ids = {};
for (var i = 0; i < objects.length; ++i) { ids[objects[i].id] = objects[i]; }
// Now empty the list and push the non-duplicated objects back into it
objects = [];
// Check hasOwnProperty in case prototypes have been changed
for (var id in ids) { if (ids.hasOwnProperty(id)) { objects.push(ids[id]); } }
var objects=[…];
变量id={};
对于(var i=0;i
id
每个
id
只能包含一个对象,因此只有最后一个具有
id
的对象将保留在
id
中。因此,在执行此操作后,您的数组中只能有
id
的on实例


可能有更好的方法来清理数组,但是几乎可以肯定的是,有更好的方法来做任何你想做的事情,而不必首先清理数组。

从0到array.length遍历数组,并将对象添加到“hash”(读:javascript多态对象)。注意:

var objects = [...];
var ids = {};
for (var i = 0; i < objects.length; ++i) { ids[objects[i].id] = objects[i]; }
// Now empty the list and push the non-duplicated objects back into it
objects = [];
// Check hasOwnProperty in case prototypes have been changed
for (var id in ids) { if (ids.hasOwnProperty(id)) { objects.push(ids[id]); } }
var objects=[…];
变量id={};
对于(var i=0;i
id
每个
id
只能包含一个对象,因此只有最后一个具有
id
的对象将保留在
id
中。因此,在执行此操作后,您的数组中只能有
id
的on实例


可能有更好的方法来清理数组,但是几乎可以肯定的是,有更好的方法来做任何你想做的事情,而不必首先清理数组。

例如,使用“哈希”代替对象数组,从而保证每个ID只有一个对象。例如,使用“散列”代替对象数组,从而保证每个ID只有一个对象。