- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否可以在 javascript 中比较 2 个对象数组。我的要求是我必须比较 2 个对象数组,并且我必须在这 2 个对象数组之间获取公共(public)对象:
考虑第一个对象数组:
[ { id_0: 356,
name_0: 'xxxxx',
id_1: 33,
name_1: 'yyyyyy',
id_2: 602,
name_2: 'zzzzzzz',
collecteddate: '31/03/2011',
key: 'kkkkkkk',
value: '0.41' },
{ id_0: 356,
name_0: 'xxxxxx',
id_1: 33,
name_1: 'yyyyyy',
id_2: 602,
name_2: 'zzzzzz',
collecteddate: '31/03/2011',
key: 'k1k1k1k1k1',
value: '0.20' },
{ id_0: 356,
name_0: 'xxxxx',
id_1: 33,
name_1: 'yyyyy',
id_2: 602,
name_2: 'zzzzzz',
collecteddate: '31/03/2011',
key: 'k2k2k2k2k2k2k2',
value: '1.30' }}]
我的第二个对象数组:
[ { id_0: 356,
name_0: 'xxxxx',
id_1: 33,
name_1: 'yyyyyy',
id_2: 602,
name_2: 'zzzzzzz',
collecteddate: '31/03/2011',
key: 'kkkkkkk',
value: '0.41' },
{ id_0: 356,
name_0: 'xxxxxx',
id_1: 33,
name_1: 'yyyyyy',
id_2: 602,
name_2: 'zzzzzz',
collecteddate: '31/03/2011',
key: 'k1k1k1k1k1',
value: '0.20' },
{ id_0: 356,
name_0: 'xxxxx',
id_1: 33,
name_1: 'yyyyy',
id_2: 602,
name_2: 'zzzzzz',
collecteddate: '31/03/2011',
key: 'k2k2k2k2k2k2k2',
value: '1.30' }}]
我必须比较以上 2 个对象,并且我必须使用以上 2 个的公共(public)条目构建另一个对象。在上面的示例中,每个条目在 2 个数组中都是相同的,因此第三个数组应包含 3 个条目。有可能这样做吗..帮我解决这个问题..提前致谢....
编辑:
我已经使用 _(underscore) 库来检查 2 个对象是否相等,如果相等,我将该对象插入新数组..它是否是好的解决方案..
最佳答案
没有第三方库的解决方案——纯javascript
类似这样的东西(递归)- 可以优化但可读性较差。
var compareAndMerge = function(object1, object2) {
var outputObject = {};
var compareSubObject = function(object1, object2) {
var outputObject = {};
for (var k in object1) {
for (var k2 in object2) {
if (typeof object1[k] === 'object' && typeof object2[k2] === 'object') {
var sameObject = compareSubObject(object1[k], object2[2]);
if (sameObject === false) {
return false;
}
outputObject[k] = object1[k];
} else if (object1[k] === object2[k]) {
outputObject[k] = object1[k];
} else {
return false;
}
}
}
return outputObject;
};
for (var k in object1) {
for (var k2 in object2) {
if (typeof object1[k] !== 'object' && object1[k] === object2[k]) {
outputObject[k] = object1[k];
} else if (typeof object1[k] === 'object') {
var sameObject = compareSubObject(object1[k], object2[k]);
if (sameObject !== false) {
outputObject[k] = sameObject;
}
}
}
}
return outputObject;
};
关于javascript - Node.js + ObjectArray + 比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22855116/
我有两个类(class),一个用于文章,另一个用于购物车。购物车由一个对象数组组成,其中包含 article 对象。 我需要在构造函数中使用 foreach 循环来汇总商品的价格。当我在构造函数中编写
我有一个对象数组像这样的列表格式 var myFormData = [ { id: 1, name: "first name", type: "test", root:
是否可以在 javascript 中比较 2 个对象数组。我的要求是我必须比较 2 个对象数组,并且我必须在这 2 个对象数组之间获取公共(public)对象: 考虑第一个对象数组: [ { id_0
我有一个要求,我需要使用像“https://videoapi.com/api/video.mp4”这样的视频链接调用rest api ' 然后为每个视频对象创建一个缩略图,我已经完成了大部分工作,但是
我在解决这个问题时遇到了令人沮丧的时间,而且 JNI 文档少得可怜。将不胜感激! 我分配了一个关于 Android 网络应用程序的项目。 native 端存储有关您连接到的用户的信息,我需要将此用户列
我有以下 Matlab“类设计”: classdef foo properties a; b; end methods func
我正在使用 Guava像这样连接对象数组的库 import com.google.common.collect.ObjectArrays ; .... plannedList = ObjectArra
我是一名优秀的程序员,十分优秀!