Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何删除对象数组中的对象:jquery?_Javascript_Jquery_Arrays - Fatal编程技术网

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

Javascript 如何删除对象数组中的对象:jquery?,javascript,jquery,arrays,Javascript,Jquery,Arrays,我很困惑,我试图使用jquery删除对象数组中的对象这是我的代码 我试图告诉if条件以删除带有v.name='x'的对象​但是我得到了这个erroruncaughttypeerror:Object#没有方法“splice” 更新在splice()之后,我需要像这样的东西:y.info=[{name:'x',age:58},{name:'y',age:15}] 知道我做错了什么吗谢谢如果您只是试图删除包含值{name:'x'}的内部数组元素,那么要拼接的数组就是外部循环的值。info: $.eac

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

我试图告诉
if
条件以删除带有
v.name
='x'的对象​但是我得到了这个
error
uncaughttypeerror:Object#没有方法“splice”

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


知道我做错了什么吗谢谢

如果您只是试图删除包含值
{name:'x'}
的内部数组元素,那么要
拼接的数组就是外部循环的
值。info

$.each(x, function(index, value) {
    $.each(value.info, function(i, v) {
        if (v.name === 'x') {
            value.info.splice(i, 1) ; 
        }
    });
});
但是,这段代码存在一个问题,即在使用
$对数组进行迭代时,不应修改数组的长度。此备用代码修复了该问题:

$.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;
        }
    }
});
$。每个(x,函数(索引,值){
var info=value.info;
对于(变量i=0;i
如果您只是试图删除包含值
{name:'x'}
的内部数组元素,则要
拼接的数组是外部循环的
值。信息

$.each(x, function(index, value) {
    $.each(value.info, function(i, v) {
        if (v.name === 'x') {
            value.info.splice(i, 1) ; 
        }
    });
});
但是,这段代码存在一个问题,即在使用
$对数组进行迭代时,不应修改数组的长度。此备用代码修复了该问题:

$.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;
        }
    }
});
$。每个(x,函数(索引,值){
var info=value.info;
对于(变量i=0;i
将其更改为
x.splice
-
这是数组元素。您只是想从
y.info
中删除该对象,即离开
{name:y,age:15}
,还是想从数组
x
中删除整个对象
y
?不要离开
{name:y,age:15}
将其更改为
x.splice
-
这是数组元素。您只是想从
y.info
中删除该对象,即离开
{name:y,age:15}
,还是想从数组
x
中删除整个对象
y
?不要离开
{name:y,age:15}
我尝试了你的答案,它给了我这个错误
未捕获类型错误:无法读取未定义的属性“name”
不知道为什么@minagariel,因为在下一次迭代中拼接数组后,该索引处没有对象或name属性。我不明白?我们从
x.info
中删除了
{name:'x',age:58}
我现在应该有
y.info=[{name:'y',age:15}]
我甚至没有
数组x
@minagabrieel你有一个数组
x
。但是,这段代码仍然不起作用,因为它在迭代过程中修改了数组。我尝试了你的答案,它给了我这个错误
Uncaught TypeError:无法读取未定义的属性“name”
不知道为什么@minagariel,因为在下一次迭代中拼接数组后,该索引处没有对象或name属性。i你不明白吗?我们从
x.info
中删除了
{name:'x',age:58}
我现在应该有
y.info=[{name:'y',age:15}]
我甚至没有
数组x
@minagabrieel你有一个数组
x
。但是,这段代码仍然不起作用,因为它会在迭代数组时修改数组。