gpt4 book ai didi

javascript - 如何删除对象数组中的对象: jquery?

转载 作者:行者123 更新时间:2023-11-28 13:49:15 24 4
gpt4 key购买 nike

我很困惑,我试图使用jquery删除对象数组中的对象,这是我的代码,jsFiddle

var x = new Array() ; 
var y = {} ;
y.name = 'myName' ;
y.age = 28 ;
y.phone = 27895556 ;
y.info = [{name:'x' ,age:58} ,{name:'y' , age:15}]
x.push(y) ;

$.each(x , function(index,value) {
$.each(value.info , function(i,v){
if(v.name == 'x'){
this.splice(i,1) ;
}

});
});

我试图告诉 if 条件以 v.name = 'x' 删除对象,但我收到此错误 未捕获类型错误:对象#没有方法“拼接”

更新 我需要这样的东西: y.info = [{name:'x' ,age:58} ,{name:'y' ,age:15}] splice()

之后

知道我做错了什么谢谢

最佳答案

如果您只是尝试删除包含值 {name: 'x'} 的内部数组元素然后你想要的数组 splicevalue.info外循环:

$.each(x, function(index, value) {
$.each(value.info, function(i, v) {
if (v.name === 'x') {
value.info.splice(i, 1) ;
}
});
});

但是,此代码存在一个问题,即在使用 $.each 迭代数组时不应修改数组的长度。 。此替代代码解决了该问题:

$.each(x, function(index, value) {
var info = value.info;
for (var i = 0; i < info.length; ) {
if (info[i].name === 'x') {
info.splice(i, 1);
} else {
++i;
}
}
});

关于javascript - 如何删除对象数组中的对象: jquery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11969495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com