当下划线.js时,根据键值删除对象数组中的重复项时,结果很奇怪



当我尝试从对象数组中删除重复项时,我有一些奇怪的结果,让我解释一下这是我的数组由服务返回:

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值是未定义的,这就是为什么它们被视为重复项的原因。

最新更新