gpt4 book ai didi

javascript - 无法从 ES6 中的 JSON 数组中删除 key

转载 作者:行者123 更新时间:2023-12-04 14:43:39 24 4
gpt4 key购买 nike

我正在编写一个 JS 代码,我想在其中从 JSON 数组中删除一个特定的键,我的代码如下。

var obj = [
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
];

for (var i = 0; i < obj.length; i++) {
delete obj[i].YYY
}


/*obj=obj.forEach(item =>{ return delete item.YYYY});*/

console.log(obj);

此代码工作正常,并按预期给我结果,但是,当我尝试使用 forEach(注释行)运行它时,它显示我未定义。

我哪里错了?

最佳答案

只需删除代码中的 obj = 部分。 forEach 总是返回 undefined。由于您正在修改数组中的对象并且想要复制 for 循环,因此 forEach 很好,只是不要重新分配(并且不需要 在回调中返回):

obj.forEach(item => { delete item.YYY; });

现场示例:

var obj = [
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
];

obj.forEach(item => { delete item.YYY; });

console.log(obj);

(我删除了 forEach 代码中的错字,你有一个额外的 Y。)

也就是说,for 循环没有任何问题,或者您可以使用 for-of 循环:

for (const item of obj
delete item.YYY;
}

现场示例:

var obj = [
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
];

for (const item of obj
delete item.YYY;
}

console.log(obj);

另一种选择是通过 map,也许还有解构:

obj = obj.map(({YYY, ...rest}) => rest);

现场示例:

let obj = [
{
XXX: "2",
YYY: "3",
ZZZ: "4"
},
{
XXX: "5",
YYY: "6",
ZZZ: "7"
},
{
XXX: "1",
YYY: "2",
ZZZ: "3"
}
];

obj = obj.map(({YYY, ...rest}) => rest);

console.log(obj);

关于javascript - 无法从 ES6 中的 JSON 数组中删除 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68896604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com