Javascript 按值从对象中删除项
我正在尝试从Javascript 按值从对象中删除项,javascript,jquery,Javascript,Jquery,我正在尝试从对象中删除项目我尝试了$.grep和删除,但这些都不起作用delete不会删除并且$。grep返回空的对象。如果值等于John var obj={ 0: { 名字:“约翰”, 姓:“Doe”, 年龄:50,, 眼睛颜色:“蓝色” }, 1: { 名字:“John2”, 姓氏:“Doe2”, 年龄:51岁, 眼睛颜色:“蓝色2” } }; var r=“约翰”; //初试 //for(obj中的var firstName){ //如果(对象[名字]==r) //删除obj[名字] /
对象中删除项目
我尝试了$.grep
和删除
,但这些都不起作用delete
不会删除并且$。grep
返回空的对象
。如果值等于John
var obj={
0: {
名字:“约翰”,
姓:“Doe”,
年龄:50,,
眼睛颜色:“蓝色”
},
1: {
名字:“John2”,
姓氏:“Doe2”,
年龄:51岁,
眼睛颜色:“蓝色2”
}
};
var r=“约翰”;
//初试
//for(obj中的var firstName){
//如果(对象[名字]==r)
//删除obj[名字]
//}
//第二次尝试
//var obj=$.grep(obj,函数(e){
//返回e.firstName!=r;
//});
控制台日志(obj)代码>
您没有正确迭代。应该是:
for (var i in obj)
if (obj[i].firstName == r)
delete obj[i].firstName;
注意,这将只删除first-name属性,而不是John的整个对象。您没有正确迭代。应该是:
for (var i in obj)
if (obj[i].firstName == r)
delete obj[i].firstName;
注意,这将只删除first name属性,而不是John的整个对象。尝试执行下划线JS
delete myObject.regex
尝试使用下划线
delete myObject.regex
根据您的对象结构。我会这样做的
获取属性的值。使用forEach
并更改它
以防万一,您可能需要您的obj
之后
var obj={
0: {
名字:“约翰”,
姓:“Doe”,
年龄:50,,
眼睛颜色:“蓝色”
},
1: {
名字:“John2”,
姓氏:“Doe2”,
年龄:51岁,
眼睛颜色:“蓝色2”
}
};
var r=对象值(obj);
r、 forEach(函数(e){
e、 firstName==“John”?删除e.firstName:null
})
console.log(r)
根据您的对象结构。我会这样做的
获取属性的值。使用forEach
并更改它
以防万一,您可能需要您的obj
之后
var obj={
0: {
名字:“约翰”,
姓:“Doe”,
年龄:50,,
眼睛颜色:“蓝色”
},
1: {
名字:“John2”,
姓氏:“Doe2”,
年龄:51岁,
眼睛颜色:“蓝色2”
}
};
var r=对象值(obj);
r、 forEach(函数(e){
e、 firstName==“John”?删除e.firstName:null
})
log(r)
obj
是一个包含数字索引的集合(我们暂时假设这一点),索引从零开始,递增1。对我来说,这就是数组的定义。所以为什么obj
不是一个对象数组?obj
是一个包含数字索引的集合(现在我们假设这一点),索引从零开始,递增1。对我来说,这就是数组的定义。所以为什么obj
不是一个对象数组?谢谢,它工作得很好。把约翰的整个东西都拿走怎么样?只需删除购物车[i]代码>?@Andreas它是一个对象,不是数组。@tourtravel-将最后一行更改为删除obj[i]
;谢谢,效果很好。把约翰的整个东西都拿走怎么样?只需删除购物车[i]代码>?@Andreas它是一个对象,不是数组。@tourtravel-将最后一行更改为删除obj[i]
;