Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组中根据特定值的不同对象_Javascript - Fatal编程技术网

Javascript 数组中根据特定值的不同对象

Javascript 数组中根据特定值的不同对象,javascript,Javascript,我想知道如何获得具有不同对象的对象数组。 我正在管理一个数据库,在这个数据库中,我们不断地进行修改,我们希望得到对对象的最后修改,以便显示它们。 我使用的是NeDB,我们不能区分不同的值,所以我得到了一个按日期排序的对象数组,但我不知道如何得到一个具有唯一名称的对象数组 不同对象是指: 想象一下,我有3个物体,比如 {name: "Toto", modif: "added", createdAt : "05/08/2017"} {name: "Toto", modif: "updated", c

我想知道如何获得具有不同对象的对象数组。 我正在管理一个数据库,在这个数据库中,我们不断地进行修改,我们希望得到对对象的最后修改,以便显示它们。 我使用的是NeDB,我们不能区分不同的值,所以我得到了一个按日期排序的对象数组,但我不知道如何得到一个具有唯一名称的对象数组

不同对象是指:

想象一下,我有3个物体,比如

{name: "Toto", modif: "added", createdAt : "05/08/2017"}
{name: "Toto", modif: "updated", createdAt: "05/09/2017"}
{name: "Toto", modif: "deleted", createdAt: "05/10/2017"}
我只想把第一个托托留在这里


我们不关心那个日期,因为对象数组已经按日期排序。

您可以使用哈希表为相同的命名对象保留一个标志,并过滤给定的数组

var objects=[{name:“Toto”,modif:“added”,createdAt:“05/08/2017”},{name:“Toto”,modif:“updated”,createdAt:“05/09/2017”},{name:“Toto”,modif:“deleted”,createdAt:“05/10/2017”},
unique=objects.filter(函数(散列){
返回函数(o){
如果(!哈希[o.name]){
hash[o.name]=true;
返回true;
}
};
}(Object.create(null));
console.log(唯一)

.as控制台包装{max height:100%!important;top:0;}
筛选数组以仅包含这些元素,这样搜索数组中具有该名称的第一个元素就会生成该元素本身

data.filter(elt => data.find(elt2 => elt.name === elt2.name) === elt)

IMO解决这个问题的最有效的方法是按您关心的键减少数组,同时保留为键设置的第一个值。

var uniqueObjectsByKey=函数(数组,键){
返回Object.values(array.reduce)(函数(obj,value){
obj[value[key]]=obj[value[key]!==未定义?obj[value[key]]:值;
返回obj
}, {}))
}
变量数组=[
{名称:“Toto”,修改:“添加”,创建日期:“2017年8月5日”},
{名称:“Toto”,修改:“更新”,创建日期:“2017年9月5日”},
{名称:“Toto”,修改:“删除”,创建日期:“2017年10月5日”}
]

uniqueObjectsByKey(数组,'ToToTo')
distinct object表示相同的对象引用或具有相同键/值的对象?是否保留每个第一个对象?是的,每个第一个对象都根据其名称是的,我的错误我没有阅读自己的内容,我想放置3个对象,因为没有误解
返回哈希[o.name]=true?@torazaburo,对,但同时返回并做一个任务是一次好一次坏。我不知道。就在上面,通过误用函数参数创建神奇变量的技巧。这是O(n^2)。