亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法形成結構并根據標志過濾掉值

無法形成結構并根據標志過濾掉值

忽然笑 2023-03-24 16:44:45
我試圖通過迭代選項卡數據來形成類似 expectedOutput 的結構,并在標志為真時過濾掉數據let tabs = {'tab1': [{id:'1',mnemonic:'first',value:'jim',flag:false},                     {id:'2',mnemonic:'second',value:'kim',flag:true}],            'tab2':[{id:'1',mnemonic:'first',value:'jim',flag: true},                    {id:'2',mnemonic:'second',value:'kim',flag: false}]}let expectedOutput = {'tab1': [,                     {id:'2',mnemonic:'second',value:'kim',flag:true}],            'tab2':[{id:'1',mnemonic:'first',value:'newValue',flag:true},                    ]}let newTabs = Object.fromEntries(  Object.entries(tabs).map(([tab,data]) => {    data = data.map(d => ({...d}));    data.filter(d => d.flag == true)    return [tab,data];  }));console.log("original",tabs);console.log("new",newTabs);
查看完整描述

3 回答

?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

filter 不會改變原始數組,它只是返回過濾后的數組


let tabs = {

'tab1': [{id: '1', mnemonic: 'first', value: 'jim', flag: false},

    {id: '2', mnemonic: 'second', value: 'kim', flag: true}],

'tab2': [{id: '1', mnemonic: 'first', value: 'jim', flag: true},

    {id: '2', mnemonic: 'second', value: 'kim', flag: false}]

}



let expectedOutput = {

'tab1': [,

    {id: '2', mnemonic: 'second', value: 'kim', flag: true}],

'tab2': [{id: '1', mnemonic: 'first', value: 'newValue', flag: true},

]

}


let newTabs = Object.fromEntries(

   Object.entries(tabs).map(([tab, data]) => {

     data = data.map(d => ({...d}));

    // filter doesnt change the original array, it just return filtered array

    data = data.filter(d => d.flag === true)

    return [tab, data];

})

);


console.log("original", tabs);

console.log("new", newTabs);


查看完整回答
反對 回復 2023-03-24
?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

您需要將過濾后的數據返回給創建的對象。您的 current.filter創建了一個未在任何地方使用的新過濾數組;舊數組不會發生變異。


let tabs = {'tab1': [{id:'1',mnemonic:'first',value:'jim',flag:false},

                     {id:'2',mnemonic:'second',value:'kim',flag:true}],

            'tab2':[{id:'1',mnemonic:'first',value:'jim',flag: true},

                    {id:'2',mnemonic:'second',value:'kim',flag: false}]}



let expectedOutput = {'tab1': [,

                     {id:'2',mnemonic:'second',value:'kim',flag:true}],

            'tab2':[{id:'1',mnemonic:'first',value:'newValue',flag:true},

                    ]}


let newTabs = Object.fromEntries(

  Object.entries(tabs).map(([tab,data]) => [

    tab,

    data.filter(({ flag }) => flag)

  ])

);


console.log("new",newTabs);


查看完整回答
反對 回復 2023-03-24
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

let tabs = {'tab1': [{id:'1',mnemonic:'first',value:'jim',flag:false},

                     {id:'2',mnemonic:'second',value:'kim',flag:true}],

            'tab2':[{id:'1',mnemonic:'first',value:'jim',flag: true},

                    {id:'2',mnemonic:'second',value:'kim',flag: false}]}



let expectedOutput = {'tab1': [,

                     {id:'2',mnemonic:'second',value:'kim',flag:true}],

            'tab2':[{id:'1',mnemonic:'first',value:'newValue',flag:true},

                    ]}


let newTabs = {};

Object.entries(tabs).map((item) => {

  newTabs[item[0]] = item[1].filter(({ flag}) => flag === true);

});


console.log("original",tabs);

console.log("new",newTabs);


查看完整回答
反對 回復 2023-03-24
  • 3 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號