仅比较对象数组中的一个值 Javascript(无排序)

Compare only one value from array of objects Javascript(No Sorting)

是否有使用 lodash/underscorejs 比较两个对象数组的 属性 值的最佳方法?

我有一个这样的数组。

var a = [{'text':1}, {'text':2, 'misc':22}, {'text':3}];
var b = [{'text':1}, {'text':2}, {'text':3}];

比较 a 和 b 应该 return 正确基于 属性 'text'.

已尝试使用 _.isEqual_.isMatch,但帮助不大。

这里是JSFIDDLE

这在没有任何库的情况下非常容易,尽管库为 Array#every:

提供了替代实现
var same = a.length === b.length && a.every(function(value, index) {
    return value.text === b[index].text;
});

您可以使用 pluck _.pluck( list, key) 获取 list 中对象列表中 key 的值,因此获取 text 的值并比较

_.isEqual(_.pluck(a, "text"),_.pluck(b, "text"));

http://jsfiddle.net/mhqpe06h/1/