我正在嘗試將資料從 2 個端點轉換為模擬基本表 UI,但目前無法訪問資料庫。我玩過 lodash 并且在能夠使用 _.defaults 等基于參考合并兩個陣列方面取得了一些成功,但沒有成功。
我正在嘗試按行 ID 在平面表中顯示資料,并將新插入的鍵用作列參考
BusData1 = [
{
id: 1,
ObjRef: 1,
ObjRefLabel: "ObjRef1 - Option 1",
ObjRefDesc: "Option 1 Desc",
parentId: null,
},
{
id: 12,
ObjRef: 1,
ObjRefLabel: "ObjRef1 - Option 2",
ObjRefDesc: "Option 2 Desc",
parentId: null,
},
];
OtherData2 = [
{
id: 21,
BusDataId: 1,
ObjRef: 1,
ObjRefDesc: "Desc",
},
{
id: 22,
BusDataId: 1,
ObjRef: 0,
ObjRefDesc: "Desc",
},
{
id: 31,
BusDataId: 1,
ObjRef: 1,
ObjRefDesc: "Desc",
},
{
id: 32,
BusDataId: 12,
ObjRef: 0,
ObjRefDesc: "Desc",
},
];
我試圖將陣列 2 與鍵值合并到陣列 1 中,但在插入陣列 1 時,我試圖更新鍵以包含物件 ID,因此每個插入鍵都有唯一的參考。
Combined = [
{
id: 1,
ObjRef: 1,
BusDataId21ObjRef: 1,
BusDataId22ObjRef: 0,
BusDataId31ObjRef: 1,
ObjRefLabel: "Option 1",
ObjRefDesc: "Desc",
parentId: null,
},
{
id: 12,
ObjRef: 1,
BusDataId31ObjRef: 0,
ObjRefLabel: "Option 2",
ObjRefDesc: "Desc",
parentId: null,
},
];
到目前為止,我已經從另一個 StackOverflow 帖子中獲得了以下內容,但我無法超越這一點。
const combine = _.map(otherData2, function(row){
return _.defaults(row, _.find(otherData2, {BusDataID: row.id}
任何建議或指導在這里將不勝感激
uj5u.com熱心網友回復:
一個簡單的方法
回圈遍歷業務資料陣列。對于每個業務資料項,在第二個陣列中找到屬于它的元素,并將它們作為額外條目插入。
BusData1 = [{
id: 1,
ObjRef: 1,
ObjRefLabel: "ObjRef1 - Option 1",
ObjRefDesc: "Option 1 Desc",
parentId: null,
},
{
id: 12,
ObjRef: 1,
ObjRefLabel: "ObjRef1 - Option 2",
ObjRefDesc: "Option 2 Desc",
parentId: null,
},
];
OtherData2 = [{
id: 21,
BusDataId: 1,
ObjRef: 1,
ObjRefDesc: "Desc",
},
{
id: 22,
BusDataId: 1,
ObjRef: 0,
ObjRefDesc: "Desc",
},
{
id: 31,
BusDataId: 1,
ObjRef: 1,
ObjRefDesc: "Desc",
},
{
id: 32,
BusDataId: 12,
ObjRef: 0,
ObjRefDesc: "Desc",
},
];
BusData1.forEach(business => {
OtherData2.filter(
other => other.BusDataId == business.id
).forEach(
other => {
business["BusDataId" other.id "ObjRef"] = other.ObjRef
})
})
console.log(BusData1)
優化
這是 O(nxm)。如果對于龐大的陣列來說這還不夠快,您可以利用已知的屬性嗎?
例如,如果對第二個陣列中的專案進行排序,使得屬于 BusData1 元素 1 的任何條目出現在屬于 BusData1 元素 2 的條目之前,您可以通過單次完成,即 O(n m)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/346595.html
標籤:javascript 数组 json 洛达什
