当我尝试从对象数组中删除重复项时,我有一些奇怪的结果,让我解释一下这是我的数组由服务返回:
var mens =[{
"text":"Ahoy",
"from":"9728467",
"to":"9732825",
"date":"2017-05-19 18:37:14",
"idProyecto":"1",
"foto":null,
"fotolocal":null,
"tipo":1,
"sync":1,
"privado":1,
"descargado":0,
"miembros":null,
"idSyncLocal":"97284672017519183714",
"$$hashKey":"object:96"
},
{
"text":"Salut",
"from":"9728467",
"to":"9732825",
"date":"2017-05-19 18:37:26",
"idProyecto":"1",
"foto":null,
"fotolocal":null,
"tipo":1,
"sync":1,
"privado":1,
"descargado":0,
"miembros":null,
"idSyncLocal":"97284672017519183726",
"$$hashKey":"object:108"
},
{
"text":"1",
"from":"9728467",
"to":"9732825",
"date":"2017-05-19 18:37:39 ",
"idProyecto":1,
"foto":null,
"fotolocal":null,
"tipo":1,
"sync":1,
"privado":1,
"descargado":1,
"miembros":null,
"IdSyncLocal":"97284672017519183739"
},
{
"text":"2",
"from":"9728467",
"to":"9732825",
"date":"2017-05-19 18:37:44 ",
"idProyecto":1,
"foto":null,
"fotolocal":null,
"tipo":1,
"sync":1,
"privado":1,
"descargado":1,
"miembros":null,
"IdSyncLocal":"97284672017519183744"
},
{
"text":"3",
"from":"9728467",
"to":"9732825",
"date":"2017-05-19 18:37:51 ",
"idProyecto":1,
"foto":null,
"fotolocal":null,
"tipo":1,
"sync":1,
"privado":1,
"descargado":1,
"miembros":null,
"IdSyncLocal":"97284672017519183751"
}]
我有这个代码:
var mySubArray = _.uniq(mens, 'IdSyncLocal');
document.getElementById('content').innerHTML += '<br>Some new content!' + JSON.stringify(mySubArray);
问题是它应该返回 IdSyncLocal 过滤的不重复项目,但它总是删除第二个项目,在这个例子中,所有项目都是不同的,所以我不知道为什么返回不好,如果有人可以帮助我找到一些答案,我将不胜感激。
列表中的前两项具有idSyncLocal
而不是IdSyncLocal
的键(注意大写(。因此,两者的IdSyncLocal
值是未定义的,这就是为什么它们被视为重复项的原因。