【发布时间】:2014-10-20 17:02:56
【问题描述】:
我有两个数组:
var collectionA = [
{'name': 'Brandon', 'age': '41'}
];
var collectionB = [
{'name': 'Brandon', 'age': '41'},
{'name': 'Tom', 'age': '25'},
{'name': 'Jimmy', 'age': '36'},
{'name': 'Brian', 'age': '36'}
];
我怎样才能创建第三个数组,它基本上是从collectionB 中减去collectionA 的结果?仅供参考:我在这个项目中使用了 Underscore 和 Backbone,并且很乐意使用其中之一。
第三个数组如下所示:
var collectionC = [
{'name': 'Tom', 'age': '25'},
{'name': 'Jimmy', 'age': '36'},
{'name': 'Brian', 'age': '36'}
];
【问题讨论】:
-
注意:这里根本没有 JSON,你拥有的是带有 Javascript 对象的 Javascript 数组。 JSON 是一种用于表示对象的文本格式。
-
没有“json 数组”这样的东西。有可以将数组编码到其中的json字符串。但是您不会以您想要的方式使用 json 字符串。您将它们解码为原生结构,例如一个 javascript 数组,然后对这些原生结构做任何你想做的事情。
-
第一步是编写一个函数(或在您的框架中找到一个)来进行某种基于属性的对象比较。具有匹配属性的两个对象仍然是两个对象,因此必须有一个比较器。一旦你得到了它,那么它基本上与简单字符串或数字列表而不是对象的类似问题相同。