Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不从对象中删除对象键?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么不从对象中删除对象键?

Javascript 为什么不从对象中删除对象键?,javascript,jquery,Javascript,Jquery,我的演示中有一个对象 var vm = { a: { module: "not test" }, b: { module: "test" } } 我需要删除具有“test”模块名称的对象的键 预期产量 vm = { a: { module: "not test" } } 这是一把小提琴: 这是我的密码。我使用了delete关键字,但它对我不起作用 var tempModule = "test";

我的演示中有一个对象

var vm = {
    a: {
        module: "not test"
    },
    b: {
        module: "test"
    }
}
我需要删除具有
“test”
模块名称的对象的键

预期产量

vm = {
    a: {
        module: "not test"
    }
}
这是一把小提琴:

这是我的密码。我使用了
delete
关键字,但它对我不起作用

var tempModule = "test";
var vm = {
    a: {
        module: "not test"
    },
    b: {
        module: "test"
    }
}

deleteItem(tempModule)

function deleteItem(moduleName) {
    if (Object.key(vm) == moduleName)
        delete vm
}

console.log(vm)

您正在调用
delete vm
,它不会删除您期望的内容-
vm
是您的整个视图模型对象,如果您想删除它的
b
属性,您可以尝试以下操作:

var tempModule = 'test';
var vm = {
    a: { module: 'not test' },
    b: { module: 'test' }
};

function deleteItem(moduleName) {
    for (var key in vm) {
        if (vm.hasOwnProperty(key) && vm[key]['module'] === moduleName) {
            delete vm[key];
        }
    }
}

deleteItem(tempModule);
console.log(vm);

这是您正在调用的
delete vm
,它不会删除您期望的内容-
vm
是您的整个视图模型对象,如果要删除它的
b
属性,您可以尝试以下操作:

var tempModule = 'test';
var vm = {
    a: { module: 'not test' },
    b: { module: 'test' }
};

function deleteItem(moduleName) {
    for (var key in vm) {
        if (vm.hasOwnProperty(key) && vm[key]['module'] === moduleName) {
            delete vm[key];
        }
    }
}

deleteItem(tempModule);
console.log(vm);
这里是。

注意,
Object.key()
应该是
Object.keys()
;另外
Object.keys()
返回一个数组,可以使用括号表示法访问该数组;e、 g

Object.keys(vm)[0] // "a"

Object.keys(vm)[1] // "b"

var tempModule=“测试”;
var vm={
a:{
模块:“非测试”
},
b:{
模块:“测试”
}
}
log(Object.keys(vm)[0],Object.keys(vm)[1]);
删除项(临时模块);
函数deleteItem(moduleName){
Object.keys(vm.forEach)函数(key){
如果(vm[键][“模块”]==模块名)删除vm[键]
})
}
console.log(vm)
注意,
Object.key()
应该是
Object.keys()
;另外
Object.keys()
返回一个数组,可以使用括号表示法访问该数组;e、 g

Object.keys(vm)[0] // "a"

Object.keys(vm)[1] // "b"

var tempModule=“测试”;
var vm={
a:{
模块:“非测试”
},
b:{
模块:“测试”
}
}
log(Object.keys(vm)[0],Object.keys(vm)[1]);
删除项(临时模块);
函数deleteItem(moduleName){
Object.keys(vm.forEach)函数(key){
如果(vm[键][“模块”]==模块名)删除vm[键]
})
}

console.log(vm)
注意,
Object.key()
应该是
Object.keys()
;另外
Object.keys()
返回一个数组,可以使用括号表示法访问该数组;e、 例如,
Object.keys(vm).forEach(函数(键){if(vm[key]==moduleName)删除vm[key]})
;或者
Object.keys(vm)[0]//a
Object.keys(vm)[1]//b
对于初学者,请检查控制台是否存在错误。它是带有
s
Object.keys()
,并返回数组注释,
Object.key()
应该是
Object.keys()
;另外
Object.keys()
返回一个数组,可以使用括号表示法访问该数组;e、 例如,
Object.keys(vm).forEach(函数(键){if(vm[key]==moduleName)删除vm[key]})
;或者
Object.keys(vm)[0]//a
Object.keys(vm)[1]//b
对于初学者,请检查控制台是否存在错误。它是带有
s
Object.keys()
,并返回一个数组