删除嵌套数组

我有一个数组,其中包含许多基本属性和多个嵌套数组。我正在尝试删除嵌套数组,留下所有基项。我不想按名称过滤掉它们,而是按类型过滤掉它们。


{

    "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;    

    }

  });


牛魔王的故事
浏览 133回答 4
4回答

catspeake

对于初学者,不返回新数组。如果要返回新数组,请改用。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"}]希望这有帮助!

沧海一幻觉

试试这个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);

慕运维8079593

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)

ibeautiful

你可以这样做,最简单的方法来做到这一点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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript