Javascript 删除作为函数参数传递的对象属性

Javascript 删除作为函数参数传递的对象属性,javascript,properties,Javascript,Properties,我正在尝试删除对象属性: 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' 为什么??我阅读了许多关于stackover

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

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]
}
有关更多详细信息,请参阅

当具有“a.b.c”之类的“路径”时,可以使用该路径删除嵌套条目:

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

var-test={abc:1};
函数deleteNode(_节点){
console.log(删除_节点);
}

deleteNode(test.abc)对象键是随机创建的字符串(用作唯一id)。我得到完全限定的属性“path”作为我唯一的输入,我不想“解析”父对象和属性的路径。。。编辑:文档上说:obj['key']和obj.key是等价的。@cl10k你能举个例子吗。没有完全了解您提到的“路径”。然后您可以在问题中添加更多信息。。。请更详细地说,因为还没有“路径”和“键”的概念。我有一个相当深的对象结构,需要在其中创建、删除和移动新对象(用作其父对象的属性)。典型的输入属性是:data.sensors.deviceA.price(将price作为deviceA子对象的属性)@cl10k use
eval
,我在回答中更新了它-。请参阅最后一个代码段。因为JavaScript没有按引用传递
delete
需要一个属性引用作为其操作数。您可以将整个
test
传递到
deleteNode
和内部do
delete\u节点。abc