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]