2017-06-21 140 views
0

我怎會與JavaScript /的NodeJS如下:噴射/複製一個JSON對象到另一個JSON對象延伸其中

注入JSON結果A(只有一個JSON對象)

[{ 
    "user": "userA", 
    "group": "groupA" 
}] 

成JSON結果B(具有相同的結構的多個JSON對象)

[{ 
    "picture": "picA", 
    "city": "cityA", 
    "year": "2016" 
}, 
{ 
    "picture": "picB", 
    "city": "cityB", 
    "year": "2017" 
}] 

和創建注射A之後慾望JSON對象C分爲B

[{ 
    "user": "userA", 
    "group": "groupA", 
    "picture": "picA", 
    "city": "cityA", 
    "year": "2016" 
}, 
{ 
    "user": "userA", 
    "group": "groupA", 
    "picture": "picB", 
    "city": "cityB", 
    "year": "2017" 
}] 

我需要組合兩個JSON結果如下。但是對象A應該被複制到所有B對象中以擴展它們。

+0

做對象A的屬性覆蓋對象B的屬性? – Cheloide

+0

A中的屬性/字段可以與B中的名稱相同,但是它們不應該覆蓋B中的任何內容。 –

回答

1

既然你只有元,下面如果有重複的屬性名稱將合併的屬性,而不會覆蓋:如果你想覆蓋舊數組的元素(而不是創建一個新的數組)

let toBeCopied = [{ 
    "user": "userA", 
    "group": "groupA" 
}]; 

let result = [{ 
    "picture": "picA", 
    "city": "cityA", 
    "year": "2016" 
}, 
{ 
    "picture": "picB", 
    "city": "cityB", 
    "year": "2017" 
}]; 

let merged = result.map(r => Object.assign({}, toBeCopied[0], r)); 

,而是執行此操作:

for (let i = 0; i < result.length; i++) { 
    result[i] = Object.assign({}, toBeCopied[0], result[i]); 
} 

但是,如果在未來的任何屬性是對象,記住只有對象的引用將被複制(它不會深克隆)。

相關問題