【问题标题】:Find difference of the two objects找出两个对象的差异
【发布时间】:2015-09-23 20:06:51
【问题描述】:

underscore.js 中有什么方法可以获取两个对象之间的差异, 尝试使用 _.difference 不起作用。 我的对象是这样的:

$scope.ABC = {};
$scope.ABC.fruits = {};
$scope.ABC.vegetables = {};
$scope.ABC.fruits.places = [];
$scope.ABC.fruits.type = [];
$scope.ABC.vegetables.places = [];
$scope.ABC.vegetables.type = [];

id 对 ABC 对象是通用的。 现在我有另一个与 ABC 相同的对象 XYZ,但它的位置或类型值可能与 ABC 不同。

我能找到两者之间的区别。

_.difference(ABC,XYZ) 不起作用。

【问题讨论】:

标签: angularjs underscore.js


【解决方案1】:

这就是你要找的东西:_.contains(list, value, [fromIndex])

如果值存在于列表中,则返回 true。如果 list 是一个数组,则在内部使用 indexOf。使用 fromIndex 在给定索引处开始搜索。

现在为$scope.ABC 的每个属性 循环_.contains(),并检查它是否存在于$scope.XYZ 中。如果没有,请推动它,例如进入另一个数组

题外话:出于各种原因,我建议使用lodash

【讨论】:

  • 这返回布尔值,而我需要返回差值。
  • 我误解了你的问题,请参阅更新的答案。
猜你喜欢
  • 2022-01-04
  • 2011-06-24
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 2019-11-27
  • 1970-01-01
  • 2021-12-05
相关资源
最近更新 更多