是否有使用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
答案 0 :(得分:4)
您可以使用pluck _.pluck( list, key)
在key
的对象列表中获取list
的值,因此请获取text
的值并进行比较
_.isEqual(_.pluck(a, "text"),_.pluck(b, "text"));
答案 1 :(得分:1)
没有任何库,这很容易,尽管库提供了Array#every
的替代实现:
var same = a.length === b.length && a.every(function(value, index) {
return value.text === b[index].text;
});