我有一個物件的陣列,如下所示。我想基本上回圈瀏覽projects.current_result并獲得所有的值。
let data = [
{
vertical_name: "CORE"。
projects: [
{
name: "Alpha"。
id: 187,
current_result: {
success: 0,
失敗。0,
skip: 0,
untested: 100.
}
}
]
},
{
vertical_name: "release"。
projects: [
{
name: "Beta"/span>,
id: 27,
current_result: {
success: 50,
失敗。20,
skip: 36,
untested: 0.
}
},
{
name: "Charlie",
id: 47,
current_result: {
success: 37,
失敗。25,
skip: 40,
untested: 0.
}
}
]
}
]
例如,我想獲得每個專案的success值,并將所有這些值放在一個陣列中。因此,在這種情況下,success= [0,50,37] 同樣,我想把failure、skip和untested
failure=[0, 20, 25]
skip=[0,36,40]
untested=[100,0, 0]
我試著用下面的代碼來實作這一點,但不知何故,我無法得到理想的結果。有什么建議可以糾正這段代碼嗎
?let alteredResponse = data.forEach(prj => /span> {
prj.reduce((result, {
數
}) => {
result.success.push(count.success|| 0)。
result.failure.push(count.failure || 0) 。
result.skip.push(count.skip| 0)。
result.untested.push(count.untested| 0) 。
return result。
}, {
success: [],
失敗。[],
skip: [],
untested: []
})
});
uj5u.com熱心網友回復:
你可以通過兩個forEach
邏輯
- 在
data中的每個節點中進行回圈。
- 通過
projects中的每個節點,從data中的節點回圈。
- 從
project節點推送success,failure,skip,untested節點到各自的結果節點。
>作業中的小插曲
>。const data = [{"vertical_name"/span>: "核心","專案"。 [{"name":"Alpha","id":187,"current_result"。 {"success":0,"failure": 0,"skip":0, "untested": 100}]},{"vertical_name":"release","projects":[{"name": "Beta","id":27,"current_result"。 {"success":50,"failure": 20,"跳過":36,"未檢測"。 0}},{"name": "Charlie","id":47,"current_result":{"successful": 37,"failure":25," skip": 40,"untested":0}}]。
const result = {
success: [],
failure: [],
skip: [],
untested: [],
}
const alteredResponse = data.forEach(span class="hljs-params">prj => {
prj.projects.forEach((project) => {
result.success.push(project.current_result.success)。
result.failure.push(project.current_result.failure)。
result.skip.push(project.current_result.skip)。
result.untested.push(project.current_result.untested)。
})
});
console.log(result);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
你可以試試這個方法
projectsprojectsprojects以獲得current_resultslet data = [ { vertical_name: "CORE", projects: [ { name: "Alpha"/span>, id: 187, current_result: { success: 0, failure: 0, skip: 0, untested: 100, }, ], }, { vertical_name: "release", projects: [ { name: "Beta"/span>, id: 27, current_result: { success: 50, failure: 20, skip: 36, untested: 0, }, }, { name: "Charlie"/span>, id: 47, current_result: { success: 37, failure: 25, skip: 40, untested: 0, }, }, ], }, ]
const res = data
.map(({ projects }) => projects)
.flat()
.map(({ current_result }) => current_result)
.reduce((acc, el) => {
for (const [key, value] of Object.entries(el) ) {
if (!acc[key]) {
acc[key] = [value]
} else {
acc[key].push(value)
}
}
return acc
}, {})
console.log(res)
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
使用預定義陣列可以更容易和可讀:
。const data = [ { vertical_name: 'CORE', projects: [ { name: 'Alpha', id: 187, current_result: { success: 0, failure: 0, skip: 0, untested: 100, }, ], }, { vertical_name: 'release', projects: [ { name: 'Beta'/span>, id: 27, current_result: { success: 50, failure: 20, skip: 36, untested: 0, }, }, { name: 'Charlie', id: 47, current_result: { success: 37, failure: 25, skip: 40, untested: 0, }, }, ], }, ] 。
const success = [];
const failure = [];
const skip = [];
const untested = [];
data.forEach((prj) => {
prj.projects.forEach(({ current_result }) =>/span> {
success.push(current_result.success || 0) 。
failure.push(current_result.failure || 0) 。
skip.push(current_result.skip || 0) 。
untested.push(current_result.untested || 0) 。
});
});
console.log("success", success)。
console.log("failure", failure)。
console.log("skip", skip) 。
console.log("untested", untested);
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
const data = [
{
vertical_name: 'CORE'。
projects: [
{
name: 'Alpha'。
id: 187,
current_result: {
success: 0,
失敗。0,
skip: 0,
untested: 100.
}
}
]
},
{
vertical_name: 'release',
projects: [
{
name: 'Beta'。
id: 27,
current_result: {
success: 50,
失敗。20,
skip: 36,
untested: 0.
}
},
{
name: 'Charlie',
id: 47,
current_result: {
success: 37,
失敗。25,
skip: 40,
untested: 0.
}
}
]
}
];
const result = {
success: [],
failure: [],
skip: [],
untested: []
};
data.forEach((prj) =>/span> {
prj.projects.reduce((_, { current_result }) => {
result.success.push(current_result.success| 0) 。
result.failure.push(current_result.failure| 0) 。
result.skip.push(current_result.skip || 0) 。
result.untested.push(current_result.untested || 0) 。
return result;
}, result);
});
console.log(result);
<iframe name="sif4" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/313040.html
標籤:
上一篇:[LeetCode]相交鏈表
