通过键从对象内部的所有对象中删除元素

我有这个对象:


const test = {

    "/test2": {

        "path": "/test",

        "items": [{

            "path": "/test",

            "method": "GET",

        }, {

            "path": "/test",

            "method": "PUT",

        }]

    },

    "/test": {

        "path": "/test2",

        "items": [{

            "path": "/test2",

            "method": "GET",

        }]

    }

}

而且我想删除path每个对象内部的嵌套元素,以便最终获得类似以下内容的内容:


const test = {

    "/test": {

        "path": "/test",

        "items": [{

            "method": "GET",

        }, {

            "method": "PUT",

        }]

    },

    "/test2": {

        "path": "/test2",

        "items": [{

            "method": "GET",

        }]

    }

}


慕村9548890
浏览 185回答 3
3回答

一只萌萌小番薯

您可以使用如下所示的内容:const data = {  "/test2": {    "path": "/test",    "items": [{      "path": "/test",      "method": "GET",    }, {      "path": "/test",      "method": "PUT",    }]  },  "/test": {    "path": "/test2",    "items": [{      "path": "/test2",      "method": "GET",    }]  }}Object.keys(data).forEach(k => {  data[k].items.forEach(item => {    delete item['path']  })})console.log(data)jsfiddle

桃花长相依

您可以使用for...in循环遍历的键test。然后使用for...of和从中的每个对象中delete删除:pathitemsconst test = { "/test": { path: "/test", items: [{ path: "/test", method: "GET" }, { path: "/test", method: "PUT" }] }, "/test2": { path: "/test2", items: [{ path: "/test2", method: "GET", }] } };for (let key in test) {  for (let item of test[key].items) {    delete item.path  }}console.log(test)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript