仅比较对象数组中的一个值 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"));
是否有使用 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"));