gpt4 book ai didi

javascript - 如何删除对象的动态属性?

转载 作者:行者123 更新时间:2023-11-30 11:05:25 33 4
gpt4 key购买 nike

我尝试删除对象的动态属性。问题是该属性取决于一组键。让我们看看代码:

let keys = ['23', 'test', '12']; // Example but this is dynamic
let temp = this.array;
keys.forEach(k => {
temp = temp[k];
});
delete temp;

我想删除 this.array['23']['test']['12']。但我收到一个错误:“在严格模式下无法对标识符调用删除”。怎么做?

最佳答案

I want to delete this.array['23']['test']['12']

只是这样写,delete this.array['23']['test']['12'] 将起作用。但是使用您的语法 delete temp,您并不是在删除属性,而是在尝试删除变量。那飞不起来即使在非严格模式下,它也不会改变 this.array 对象,您只需声明一个变量并取消声明它。

对于你的循环,你应该提前停止一步来删除一个属性,而不是一个变量:

keys.forEach((key, index, arr) => {
if (index < arr.length - 1) {
temp = temp[key];
} else {
delete temp[key];
}
});

关于javascript - 如何删除对象的动态属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55854172/

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