答案 0 :(得分:2)
您可以使用Lodash的_.isEqual功能。此函数将比较数组中对象的所有属性。
var obj = [{ 'a': 1, b: 2 },{ 'a': 3, b: 4 }];
var other = [{ 'a': 1, b: 2 }, { 'a': 3, b: 4 }];
_.isEqual(OBJ,其他); // =>真
重要的是要注意两个数组的元素需要处于相同的顺序。这将返回false:
var obj = [{ 'a': 1, b: 2 },{ 'a': 3, b: 4 }];
var other = [{ 'a': 3, b: 4 },{ 'a': 1, b: 2 }];
_.isEqual(OBJ,其他); // =>假
<强>更新强>
使用_.isEqual,您需要具有相同顺序的两个数组。但要克服这种有序的比较,你可以使用其他lodash函数,所以在你的情况下你可以这样使用(使用sortBy):
_.isEqual(_.sortBy(obj, 'id'), _.sortBy(other, 'id'));
这将首先按id对数组进行排序,然后验证数组是否相等。您也可以按多个属性或自定义函数进行排序。
答案 1 :(得分:2)
而不是lodash或javascript,angularjs中的方法来检查两个对象的相等性:public class House_main : MonoBehaviour {
public string owner;
private House_goods goods;
void Start () {
// obj (goods) is not null
goods = this.transform.Find("House_goods").GetComponent<House_goods>();
// i can use
// goods.AddAmountToGoodByName (value, name);
}
public void UpdateGoodInfo (int value, string name) {
// obj (goods) is null
goods.AddAmountToGoodByName (value, name);
}
}
&amp;可以按如下方式使用:
angular.equals
由于它有角度的自己的平等检查,因此它没有问题,因为它将处理它(通过不检查)。此外,它还通过属性值检查所有属性的相等性,同时进行类型检查。