对象数组的下划线数组操作
Underscore array operations for array of objects
下划线提供了方便的数组交集、差异和并的功能。但是对于对象数组,它们不能像预期的那样工作:
var first = {val: 1};
var otherFirst = {val: 1};
var second = {val: 2};
_.difference([first, second], [otherFirst]); // result is [first, second] instead of [second]
这是因为JS检查对象的引用是否相等。如何让两个对象数组相交?
我在寻找一种惯用的解决方案。
我已经有了一些东西,将工作在两个数组
_.filter([first,second], function(obj){
return !_.findWhere([otherFirst], obj);
});
它的作用是检查array1中的对象是否存在于array2中
使用remove
也可以:
_.remove([first, second], otherFirst)
相关文章:
- 将数组对象传递到struts2中的操作类
- 响应应包含一个对象,但得到的却是GET操作的数组
- Var工作,但在使用数组执行相同操作时停止
- 使用查询将对象数组发布到asp.net-mvc控制器操作的正确方法是什么
- 使用纯JavaScript或Lodash的JSON数组操作
- JavaScript 数组操作,使任何索引作为变量来获取值
- 数组操作 java 脚本
- JavaScript 中的 Web 服务调用和 JSON 数组操作
- JavaScript 数组操作以删除奇数数组元素
- 不允许对链接函数的元素参数进行数组操作
- Javascript布尔数组操作
- 数组操作到新的数组对象中
- JSON对象创建和JSON数组操作
- Javascript不必要的压缩数组操作
- 对象数组的下划线数组操作
- Mongodb findone返回值-数组操作
- 字符串的用法[.]数组操作
- 最佳mongodb数组操作的性能
- Javascript数组操作——是否有更声明性的方法?
- 如何将.reduce函数生成的数组操作为单独的键/值对?(JavaScript)