2017-09-27 66 views
2

我有3個來源(A,B,C)獲取不同的數據,但他們有一個共同的字段PID,這3個來源是獨立的。比如,當我在UI上呈現這些數據時,可能會改變參數B,但它會返回帶有PID的數據。無論發生什麼變化,它都應該根據PID來調整其他列,並且需要顯示數據。如何在javascript中從不同的來源獲取數據後,根據ID列出數據表中的數據?

從源獲取數據:

甲:PID,名稱,DATA_A

B:PID,DATA_B

C:PID,DATA_C

演示應該是:

pid - data_a - DATA_B - DATA_C

1 ----- ------ 23 34 ------- 35

2 ----- ------- 24 45 ------- 56

我一直在想索引可能在第三源碼中pid-2的值是空白的。

有關此問題的任何建議?

示例數據格式:

變種sourceA = [{PID:1,DATA_A:23,數據_x:23},{PID:2,DATA_A:23,數據_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 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 
 
     } 
 
    ] 
 
    },

回答

2

您可以使用ECMAScript6的對象。分配:

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);

+0

變種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}]; 它會是什麼時候? – Sharat

+0

明白了,謝謝:) – Sharat

+0

我需要更多的幫助。 :) 你現在可以檢查它。 – Sharat

相關問題