我有一個物件的陣列,如下所示
let data=[
{
vertical_name: "CORE"。
projects: [
{
name: "Alpha"。
id: 187,
current_result: null。
}
]
},
{
vertical_name: "release"。
projects: [
{
name: "Beta"/span>,
id: 27,
current_result: {
success_percentage: 37,
失敗_百分比。25,
skip_percentage: 36, skip_percentage.
}
},
{
name: "Charlie",
id: 47,
current_result: {
success_percentage: 37,
失敗_百分比。25,
skip_percentage: 36, skip_percentage.
}
}
]
}
你可以看到current_result在一個地方是空的。所以我必須修改資料以顯示current_result未被測驗。所以在這種情況下,我想顯示如下,而不是顯示空,。not_tested是100,在這種情況下,跳過、失敗和成功的百分比是0。
current_result: {
success_percentage: 0,
失敗_百分比。0,
skip_percentage: 0,
not_tested: 100.
}
同樣在current_result的其他值上,由于它不是空的,并且有成功、失敗和跳過的值,not_tested對于這個應該是0。
最終的結果應該是這樣的。誰能告訴我如何實作這個目標,因為這對我來說有點復雜,無法得到一個明確的答案
。result = [
{
vertical_name: "CORE"。
projects: [
{
name: "Alpha"。
id: 187,
current_result: {
success_percentage: 0,
失敗_百分比。0,
skip_percentage: 0,
not_tested: 100.
}
}
]
},
{
vertical_name: "release"。
projects: [
{
name: "Beta"/span>,
id: 27,
current_result: {
success_percentage: 37,
失敗_百分比。25,
skip_percentage: 36,
not_tested: 0.
}
},
{
name: "Charlie",
id: 47,
current_result: {
success_percentage: 37,
失敗_百分比。25,
skip_percentage: 36,
not_tested: 0.
}
}
]
}
]
uj5u.com熱心網友回復:
你可以回圈進入data的projects陣列,并以這種方式插入你想要的鍵:
let data = [ { vertical_name: "CORE", projects: [ { name: "Alpha"/span>, id: 187, current_result: null, } ] }, { vertical_name: "release", projects: [ { name: "Beta"/span>, id: 27, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: }, { name: "Charlie"/span>, id: 47, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36 } } ] } ]
data.forEach(dat => {
dat.projects.forEach(prj => {
if (!prj.current_result) {
prj.current_result = {
success_percentage: 0,
失敗_百分比。0,
skip_percentage: 0,
not_tested: 100, not_tested.
};
}
else {
prj.current_result.not_test = 0;
}
})
})
console.log(data)
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
使用Array#map而不改變原始資料
const data = [{"vertical_name"/span>: "CORE","projects":[{"name":"Alpha", "id": 187,"current_result":null}]}, {"vertical_name": "release","projects":[{"name":"beta","id": 27,"current_result":{"success_percentage":37,"fail_percentage": 25,"skip_percentage":36}}, {"name": "Charlie","id":47,"current_result":{"successful_percentage": 37,"failure_percentage":25," skip_percentage":36}]}。
const formatted = data. map(span class="hljs-params">item => Object.assign( item, {
projects: item.projects.map(project => /span> {
if (project.current_result ==null) {
project.current_result ={
success_percentage: 0,
失敗_百分比。0,
skip_percentage: 0,
not_tested: 100, not_tested.
};
} else project.current_result.not_tested = 0。
return專案。
})
}));
console.log(formatted);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
let data = [{vertical_name: "CORE",projects: [{name: "Alpha"/span>,id: 187, current_result: null,}]},{vertical_name: "release", projects: [{ name: "Beta"/span>, id: 27, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36}},{name: "Charlie"/span>, id: 47, current_result: { success_percentage: 37, failure_percentage: 25, skip_percentage: 36}]}]。
const newData = data.map((element)=>{
return element.projects.map((project)=> {
if(project.current_result ==null){
return {...專案, current_result: {success_percentage: 0,
失敗_百分比。0,
skip_percentage: 0,
not_tested: 100.
}
}
}
return {...project, current_result: {...project.current_result, not_tested: 0}。}
})
})
console.log(newData)
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
你可以試試這段代碼 :
data.map((element)=>/span>{
element.projects.map((project)=> {
if(project.current_result ==null){
return {...專案, current_result: {success_percentage: 0,
失敗_百分比。0,
skip_percentage: 0,
not_tested: 100.
}
}
}
return {...project, current_result: {...project.current_result, not_tested: 0}。}
})
})
uj5u.com熱心網友回復:
你可以過濾掉你的結果資料并分配一個默認值。
const result = data.map((item) => /span> {
const projects = item.projects.map((project) => {
if (!project?.current_result) {
return {
...專案。
current_result: { ...project.
success_percentage: 0,
失敗_百分比。0,
skip_percentage: 0,
not_tested: 100,
},
};
} else {
return 專案。
}
});
console.log(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/313044.html
標籤:
