只比较对象数组中的一个值Javascript(No Sorting)

时间:2015-01-27 21:41:06

标签: javascript underscore.js

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

我有这样的数组。

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

比较a和b应该根据属性'text'返回true。

尝试过使用_.isEqual_.isMatch并没有多大帮助。

以下是 JSFIDDLE

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

没有任何库,这很容易,尽管库提供了Array#every的替代实现:

var same = a.length === b.length && a.every(function(value, index) {
    return value.text === b[index].text;
});