javascript - 删除作为函数参数传递的对象属性
问题描述
我正在尝试删除对象属性:
var test = {abc: 1};
console.log(delete test.abc); //works fine and returns 'true'
以下构造让我发疯
function deleteNode(_node) {
console.log(delete _node);
}
deleteNode(test.abc); // does not work and returns 'false'
为什么?我在 stackoverflow 上阅读了许多有关删除问题的问题,并阅读了提供的大多数典型链接。但我找不到这个简单问题的解决方案......
解决方案
删除对象的动态道具可以这样实现:
function deleteNode(obj, key) {
delete obj[key]
}
有关更多详细信息,请参阅删除文档。
当拥有像“abc”这样的“路径”时,您可以使用lodash unset删除嵌套条目:
var object = { 'a': { 'b': { 'c': 7 } } };
_.unset(object, 'a.b.c');
eval
不鼓励使用。
推荐阅读
- pine-script - 难以向 Pine 脚本添加警报
- go - 关闭可能是 os.Stdin 的 io.Reader
- python - 我如何使用 vanilla JavaScript 在 Django 中发送 ajax 请求
- java - 我不知道为什么会出现这个错误,请帮助我
- awk - How to check if a string contains at least one letter different from 4 using bash or awk
- html - 我将如何捕获桌面并将其流式传输到浏览器视图?
- python - 如何在指定的 col 位置更改 2D numpy 数组中的某些元素?
- python - 如何在 python 中使用 pickle 读取二进制 txt 文件?
- python - Pandas - 当数据框包含列表时如何搜索值?
- java - Amazon Textract 错误 - 代码 400 无效参数异常