JavaScript - 将两个数组对象合并为一个arr对象,然后遍历每个索引/对象
JavaScript--merge two array objects into one arr object then loop through each index/object
var arrObj1 = [{a:1},{b:2}, {c:3}]
var arrObj2 = [{operator: LESS THAN}, {operator:GREATER THAN}, {operator:"NOT EQUAL"}]
所以我想将 arrObj2[0] 的 obj 合并到 arrObj1[0] 的 obj,将 arrObj2[1] 合并到 arrObj1[1] 的 obj 中,依此类推......
//resultArrObj = [{a:1, operator: LESS THAN}, {b:2, operator:"GREATER THAN}];
在之后(或在合并时(,我需要遍历每个对象并返回一个新的 obj,它将具有属性(字段、输入、运算符(并推送到数组中。
field = key from arrObj1 (a, b, c)
input = value from arrObj1(1,2,3)
operator = "operator" from arrObj 2.
// var endResult = [{field:a, input:1, operator: LESS THAN}, {field:b, input:2, operator:GREATER THAN}];
谢谢!!
我相信
这能满足您的需求。 它假设您知道您的数据并且不进行任何错误检查,而只是按照您要求的方式组合它们。
var arrObj1 = [{a:1},{b:2}, {c:3}];
var arrObj2 = [{operator: "LESS THAN"}, {operator:"GREATER THAN"}, {operator:"NOT EQUAL"}];
var endResult = [];
var counter = 0;
var objNew = {};
arrObj1.forEach(function(fieldInput){
for ( field in fieldInput ){
objNew.field=field;
objNew.input=fieldInput[field];
objNew.operator=arrObj2[counter]['operator'];
counter++;
endResult.push(objNew);
objNew={};
};
})
// var endResult = [{field:a, input:1, operator: LESS THAN}, {field:b, input:2, operator:GREATER THAN}, {field:c, input:3, operator:NOT EQUAL}]
让我们将这个问题分为 2 个步骤:1( 合并对象2( 处理对象
我们可以编写一个广义合并函数:
if (!Object.prototype.extend) {
Object.prototype.extend = function (object) {
for (key in object) {
if (typeof object[key] === 'object' &&
typeof this[key] === 'object' &&
this.hasOwnProperty(key)) {
this[key].extend(object[key]);
} else {
this[key] = object[key];
}
}
return this;
};
};
上面的代码创建了一个所有对象共享的方法。 它的工作原理是这样的:
var obj1 = { 'a': 7 },
obj2 = { 'b': 2 };
obj1.extend(obj2);
console.log(obj1); // { 'a': 7, 'b': 2 };
我通常不会像使用 .extend 方法那样修改对象,但构建做同样事情但具有不同 API 的东西应该是微不足道的。 (例如,函数扩展(obj1,obj2({做事..并返回扩展对象}
无论如何。 这应该解决有关合并对象的第一部分。
第二部分,处理这个合并的对象,只是使用 for 循环迭代合并的对象,并将新对象推送到数组中。 它看起来像这样:
for (var prop in mergedObject) {
var tempObject = {};
if (prop === 'operator') {
tempObject.operator = mergedObject.operator;
} else {
tempObject.field = prop;
tempObject.input = tempObject[prop];
}
endResult.push(tempObject);
}
希望这对您有所帮助。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 值对象在某个变量发生更改后发生更改
- 如何为json对象中的段发送array[]
- JavaScript - 将两个数组对象合并为一个arr对象,然后遍历每个索引/对象