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

标签 javascript jquery arrays

我很困惑,我试图使用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/

相关文章:

javascript - JSON解析后无法获取值

javascript - 这个键的值是一个数组吗?

jquery - 使用 jQuery-twitter Bootstrap 按钮添加/删除类到 anchor 标记?

javascript - 在 jQuery Flip 插件中使用 javascript variavl

javascript - 如何使用 jQuery 显示隐藏在滚动下方的消息计数?

java - 如何在 Java 中为 n 数组添加增量?

python - 在python中使用numpy创建一个动态数组

javascript - 在离开页面之前自动滚动到同一位置?

javascript - 淡入和淡出 block 中的文本

javascript - 获取嵌套对象 - 但标识符是所需对象的一部分