当我采摘作为对象的字段时,为什么lodash的_.unique不会返回唯一对象?

Dan*_*lan 4 javascript unique coffeescript lodash

我正在使用lodash的_.unique并且它没有按预期工作.我这样做:

uniqueByFocusIndex = _.unique(clickables, false, "focusIndex");
Run Code Online (Sandbox Code Playgroud)

正如你在图像中看到的那样(看右边),它返回两个元素,它们的focusIndexes 值相同.我希望这能归还两者之一,而不是两者.是因为_.unique只适用于原语而不是对象吗?

点击展开: 在此输入图像描述

Aiz*_*rdi 7

_.uniqWith 是您可能需要的,以便您可以使用进行比较 _.isEqual

_.uniqWith(clickables, _.isEqual)

文档中建议


Mos*_*sho 5

它不起作用,因为比较对象是通过引用完成的,即使对象的内容相同也返回false.

使用字符串进行回调将使用pluck回调样式检查这些值,但是在该键下使用这些对象的比较将始终为false.

我试图找到一种方法来做其他一些回调,但我认为你最好只编写uniq适合你的目的的自己的功能.