如何删除对象数组中的对象:jquery
How to remove object in object array : jquery?
我很困惑我试图使用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' 的对象,但我得到了这个error
未捕获的类型错误:对象 # 没有方法"拼接"
更新我需要类似的东西:y.info = [{name:'x' ,age:58} ,{name:'y' , age:15}]
splice()
之后
知道我做错了什么谢谢
如果您只是尝试删除包含值{name: 'x'}
的内部数组元素,那么您要splice
的数组是外部循环的value.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(Angular)从一个对象数组到第二个数组查找值
- 在Javascript中转换对象数组
- 在JavaScript中通过索引从对象数组中获取值
- Backbone虹吸以获取对象数组
- 如何在DataTables 2.1中迭代对象数组
- Javascript-根据赋值顺序,按键合并对象数组
- 将事件附加到对象/数组
- jQuery$.inArray()总是返回-1和一个对象数组
- javascript处理一个对象数组以获得一个新的对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 在对象数组中查找多个值的d3范围
- Undercore.js获取对象数组中键对象的值
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 如何通过json对象数组为嵌套对象赋值
- 如何循环通过2个对象数组并通过匹配id进行合并
- 为对象数组创建列表项
- 如何使用javascript合并两个对象数组
- JSON到对象数组,并向每个对象添加项
- JavaScript:从对象数组中获取唯一值及其计数
- 按不同项目对对象数组进行排序