首页 > 解决方案 > 删除作为函数参数传递的对象属性

问题描述

我正在尝试删除对象属性:

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 上阅读了许多有关删除问题的问题,并阅读了提供的大多数典型链接。但我找不到这个简单问题的解决方案......

标签: javascriptproperties

解决方案


删除对象的动态道具可以这样实现:

function deleteNode(obj, key) {
  delete obj[key]
}

有关更多详细信息,请参阅删除文档

当拥有像“abc”这样的“路径”时,您可以使用lodash unset删除嵌套条目:

var object = { 'a': { 'b': { 'c': 7 } } }; 
_.unset(object, 'a.b.c');

eval鼓励使用。


推荐阅读