我有三个源(A,B,C)得到不同的数据,但它们有一个共同的场PID,这三个来源是独立的。例如,当我在UI上显示这些数据时,参数B可以更改,但它将返回PID数据。无论如何,发生了什么变化的源,它应该调整与其他列,并需要显示数据根据PID。
从源获取数据:
A: pid,名字,data_a
pid,data_b
C: pid,data_c
发言应包括:
pid - data_a - data_b - data_c
1
2-24
我在想,指数可能在第三来源,pid-2的值是空白的.
对这个问题有什么建议吗?
示例数据格式:
变量sourceA ={ pid: 1,data_a: 23,data_x: 23},{ pid: 2,data_a: 23,data_x: 23};
变量sourceB ={ pid: 1,data_b: 34,data_y: 34 },{ pid: 2,data_b: 34,data_y: 34 };
变量sourceC ={ pid: 1,data_c: 35,data_z: 34 },{ pid: 2,data_c: 35,data_z: 34 };
编辑::
var sourceA = [{ pid: 1, data_a: 23, data_x: 23},{ pid: 2, data_a: 23 ,data_x: 23}];
var sourceB = [{ pid: 1, data_a: 34, data_x: 34 },{ pid: 2, data_a: 34, data_x: 34 }];
var sourceC = [{ pid: 1, data_a: 35, data_x: 34 },{ pid: 2, data_a: 35, data_x: 34 }];
我想要这样的:
[
{
"pid": 1,
"array": [
{
"data_a": 33,
"data_x": 30
},
{
"data_a": 33,
"data_x": 30
},
{
"data_a": 33,
"data_x": 30
}
]
},
{
"pid": 2,
"array": [
{
"data_a": 33,
"data_x": 30
},
{
"data_a": 33,
"data_x": 30
},
{
"data_a": 33,
"data_x": 30
}
]
},
发布于 2017-09-27 09:10:28
您可以使用ECMAScript6 6的Object.assign:
sourceA = { pid: 1, data_a: 23 };
sourceB = { pid: 1, data_b: 34 };
sourceC = { pid: 1, data_c: 35 };
var result = Object.assign({}, sourceA, sourceB, sourceC);
console.log(result);
编辑:
如果源是数组,则应该是:
var sourceA = [{ pid: 1, data_a: 23, data_x: 23},{ pid: 2, data_a: 23 ,data_x: 23}];
var sourceB = [{ pid: 1, data_b: 34, data_y: 34 },{ pid: 2, data_b: 34, data_y: 34 }];
var sourceC = [{ pid: 1, data_c: 35, data_z: 34 },{ pid: 2, data_c: 35, data_z: 34 }];
var result = sourceA.map((obj, index) => Object.assign({}, sourceA[index], sourceB[index], sourceC[index]));
console.log(result);
https://stackoverflow.com/questions/46443742
复制相似问题