簡體   English   中英

如何僅將特定鍵值對從一個 object 添加到另一個?

[英]How can I add only particular key value pairs from one object to another?

認為,

obj1 = 
0: {
description: "",
holiday: false,
id: "",
isWeekend: false,
percent: 0,
pmDescription: "",
pmHours: 0,
productivity: 0,
projectName: "rgffgfg",
sowId: "7396",
time: 1591641000000,
userHours: 0,
userName: "hemant tripathi",
wfh: false,
},
1: {
description: "",
holiday: false,
id: "",
isWeekend: false,
percent: 0,
pmDescription: "",
pmHours: 0,
productivity: 0,
projectName: "rgffgfg",
sowId: "7396",
time: 1591641000000,
userHours: 0,
userName: "hemant tripathi",
wfh: false,
}
2: {
description: "",
holiday: false,
id: "",
isWeekend: false,
percent: 0,
pmDescription: "",
pmHours: 0,
productivity: 0,
projectName: "rgffgfg",
sowId: "7396",
time: 1591641000000,
userHours: 0,
userName: "hemant tripathi",
wfh: false,
}


obj2: {}

我只想在 obj2 中添加 3 個鍵值對。 我想循環訪問並訪問 obj1。 並且在 obj2 中只添加 3 個鍵值對('description'、'userHours'、'userName')。我想添加這 3 個鍵值對。 我們怎么能做到這一點?

您可以這樣分配值。

 let obj1 = [{ description: "", holiday: false, id: "", isWeekend: false, percent: 0, pmDescription: "", pmHours: 0, productivity: 0, projectName: "rgffgfg", sowId: "7396", time: 1591641000000, userHours: 0, userName: "hemant tripathi", wfh: false, }, { description: "", holiday: false, id: "", isWeekend: false, percent: 0, pmDescription: "", pmHours: 0, productivity: 0, projectName: "rgffgfg", sowId: "7396", time: 1591641000000, userHours: 0, userName: "hemant tripathi", wfh: false, }, { description: "", holiday: false, id: "", isWeekend: false, percent: 0, pmDescription: "", pmHours: 0, productivity: 0, projectName: "rgffgfg", sowId: "7396", time: 1591641000000, userHours: 0, userName: "hemant tripathi", wfh: false, }] let obj2 = [] obj1.forEach(o => { obj2.push({ description: o.description, userHours: o.userHours, userName: o.userName }) }) console.log(obj2)

let obj1= [{
description: "",
holiday: false,
id: "",
isWeekend: false,
percent: 0,userHours: 0,userName: 'Ab'
},
{
description: "",
holiday: false,
id: "",
isWeekend: false,
percent: 0,userHours: 0,userName: 'Abcd'
}];

let obj2 = obj1.map(data => ({description: data.description, userHours: data.userHours, userName: data.userName}));

假設您需要允許來自 object 的某些密鑰,因此您創建一個列表,其中包含您需要的任何密鑰到 map 列表中的接受密鑰。

var acceptedKey=["Id","description","holiday"] for(var key in obj1) { if(acceptedKey.includes(key)) { var newDict=[]; newDict.push(key:key, value:obj1[key]) } }

您可以使用帶有所需鍵的新數組obj2迭代obj1和 map。

const obj2 = obj1.map((val) => ({
  'userName': val.userName,
  'userHours': val.userHours,
  'description': val.description,
}))

console.log(obj2)

這會將您的對象數組復制到另一個對象數組中,其中僅包含您想要的鍵。

const source1 = {
  key1: "value1_s1",
  key2: "value2_s1",
  key3: "value3_s1"
  // ...
}

const source2 = {
  key1: "value1_s2",
  key2: "value2_s2",
  key3: "value3_s2"
  // ...
}

const objArr = [source1, source2]; // ...

const keysToCopy = ["key1", "key2"]; // ...

const destObjArr = objArr.map(o => Object.assign({}, Object.keys(o).reduce((obj, k) => {
    if(keysToCopy.includes(k)) obj[k] = o[k];
  return obj;
}, {}) ));

console.log(destObjArr);

/* Outputs 
[{
  key1: "value1_s1",
  key2: "value2_s1"
}, {
  key1: "value1_s2",
  key2: "value2_s2"
}]

*/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM