在数组对象中分组
Grouping in an array object
我有 2 个以下格式的 javascript 数组对象:
var input1 =
{
"a" : [
{
"id" : 1,
"name" : "gh"
}],
"b" : [
{
"id" : 2,
"name" : "ab"
}]
}
var input2 =
{
"a" : [
{
"id" : 3,
"name" : "cd"
}],
"b" : [
{
"id" : 4,
"name" : "gh"
}]
}
我希望通过以下方式格式化它:
var finaloutput =
{
"a" : [
{
"id" : 1,
"name" : "gh"
},
{
"id" : 3,
"name" : "cd"
}
],
"b" : [
{
"id" : 2,
"name" : "ab"
},
{
"id" : 4,
"name" : "gh"
}
]
}
我正在尝试在不使用任何外部库的情况下对数组进行分组。不太熟悉 javascript 中的 linq,任何可用的内置函数或任何引用?
编辑:我对输入进行了更改,因为这是我期望的输入
试试这个,当然这只是一个快速的实现 - 但它应该让你走上正确的道路:
var finaloutput = Object.keys(input1).reduce((p,v) => {
p[v] = (input1[v].concat(input2[v]))
return p;
}, {})
返回 =>
JSON.stringify(finaloutput, null, 2);
"{
"a": [
{
"id": 1,
"name": "gh"
},
{
"id": 3,
"name": "cd"
}
],
"b": [
{
"id": 2,
"name": "ab"
},
{
"id": 4,
"name": "gh"
}
]
}"
创建一个地图并填充它,检查密钥是否存在,具有任何给定数量的输入
var allInputs = [];
allInputs.push(input1);
allInputs.push(input2);
var result = [];
for(var x in allInputs)
{
var inp = allInputs[x];
for(var i in inp)
{
if(result[i] == undefined)
{
result[i] = [];
}
result[i].push(inp[i]);
}
}
var finalOutput;
var input1 = {
"a": [{
"id": 1,
"name": "gh"
}],
"b": [{
"id": 2,
"name": "ab"
}]
};
var input2 = {
"a": [{
"id": 3,
"name": "cd"
}],
"b": [{
"id": 4,
"name": "gh"
}]
};
input1.a.push(input2.a[0]);
input1.b.push(input2.b[0]);
finalOutput = input1;
//////////////////////////////////////////////////////
If the arrays are dynamic you can do the operation as follows:
var input1 = {
"a": [
{
"id": 1,
"name": "gh"
}
],
"b": [
{
"id": 2,
"name": "ab"
}
]
}
var input2 = {
"a": [
{
"id": 3,
"name": "cd"
}
],
"b": [
{
"id": 4,
"name": "gh"
}
]
}
var inputNewLengthA = input1.a.length;
var inputNewLengthB = input1.b.length;
var finalOutput;
for(var v=0;v<inputNewLengthA;v++){
input1.a.push(input2.a[v]);
}
for(var n=0;n<inputNewLengthB;n++){
input1.b.push(input2.b[n]);
}
finalOutput = input1;
///////////////////////////////////////
Note: You can also use one for loop only if your array lengths are
equal.
相关文章:
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序