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

已解決430363個問題,去搜搜看,總會有你想問的

刪除嵌套數組

刪除嵌套數組

牛魔王的故事 2022-09-02 16:54:36
我有一個數組,其中包含許多基本屬性和多個嵌套數組。我正在嘗試刪除嵌套數組,留下所有基項。我不想按名稱過濾掉它們,而是按類型過濾掉它們。{    "ID": 123,    "ItemName": "Item1",    "CommentList": [        {            "CommentID": "ABC",            "CommentText": "Test entry"        }    ],    "ExtraList": [        "A123B"    ]}期望的結果是:{    "ID": 123,    "ItemName": "Item1",}我嘗試了過濾器,但無法讓它工作,下面是我來過的最接近的,但鑒于我無法優雅地將屬性返回給調用方,這一定是錯誤的軌道。  let test = arr.forEach(function (item) {    for (var propertyName in item) {      if (!Array.isArray(propertyName))        return propertyName;        }  });
查看完整描述

4 回答

?
catspeake

TA貢獻1111條經驗 獲得超0個贊

對于初學者,不返回新數組。如果要返回新數組,請改用。Array.prototype.forEachArray.prototype.map


我之所以這么說,只是因為您將其分配給測試,這將返回未定義。


有了這個,他們應該工作


data.forEach(item => {

for(const key in item) {

    if(Array.isArray(item[key])) {

        delete item[key]        

    }

}

})

以下是輸入和輸出的代碼:


輸入:


const data = [

{

    "ID": 123,

    "ItemName": "Item1",

    "CommentList": [

        {

            "CommentID": "ABC",

            "CommentText": "Test entry"

        }

    ],

    "ExtraList": [

        "A123B"

    ]

},

{

    "ID": 124,

    "ItemName": "Item1",

    "CommentList": [

        {

            "CommentID": "ABC",

            "CommentText": "Test entry"

        }

    ],

    "ExtraList": [

        "A123B"

    ]

}

]

輸出:


[

{ID: 123, ItemName: "Item1"},

{ID: 124, ItemName: "Item1"}

]

希望這有幫助!


查看完整回答
反對 回復 2022-09-02
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

試試這個


const a = {

  "ID": 123,

  "ItemName": "Item1",

  "CommentList": [

    {

        "CommentID": "ABC",

        "CommentText": "Test entry"

    }

 ],

 "ExtraList": [

    "A123B"

 ]

}


const obj = {};


Object.keys(a)

.filter(key => !(a[key] instanceof Array))

.forEach(key => obj[key] = a[key]);


console.log(obj);


查看完整回答
反對 回復 2022-09-02
?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

arr是一個對象,你可以得到一個鍵數組,然后過濾它。Object.keys(obj)


let obj = {

  "ID": 123,

  "ItemName": "Item1",

  "CommentList": [{

    "CommentID": "ABC",

    "CommentText": "Test entry"

  }],

  "ExtraList": [

    "A123B"

  ]

}


let test = Object.keys(obj).filter((key) => {

  return !Array.isArray(obj[key])

})


console.log(test)


查看完整回答
反對 回復 2022-09-02
?
ibeautiful

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

你可以這樣做,最簡單的方法來做到這一點


const data = [

{

    "ID": 123,

    "ItemName": "Item1",

    "CommentList": [

        {

            "CommentID": "ABC",

            "CommentText": "Test entry"

        }

    ],

    "ExtraList": [

        "A123B"

    ]

},

{

    "ID": 124,

    "ItemName": "Item2",

    "CommentList": [

        {

            "CommentID": "CDE",

            "CommentText": "Test entry 2"

        }

    ],

    "ExtraList": [

        "A123BC"

    ]

}

]


let finalOutput=JSON.parse(JSON.stringify(data,['ID','ItemName']))

console.log(finalOutput)


查看完整回答
反對 回復 2022-09-02
  • 4 回答
  • 0 關注
  • 168 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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