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 useeval
,我在回答中更新了它-。请参阅最后一个代码段。因为JavaScript没有按引用传递delete
需要一个属性引用作为其操作数。您可以将整个test
传递到deleteNode
和内部dodelete\u节点。abc