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()
,并返回一个数组