我遇到了这个对象数组的问题。我需要删除与removeVal匹配的对象。我不会删除。请参阅附件中以红色突出显示的照片。我需要删除所有。
var removeVal = $(this).attr('href');
$.each(product_json, function(key, val){
if( key == removeVal) {
val.splice(key);
}
});
答案 0 :(得分:2)
希望如果我理解正确,这将有助于你,
var removeVal = $(this).attr('href');
delete product_json[removeVal]
答案 1 :(得分:1)
可能你的意思是
$.each(product_json, function(key, val){
if(val == removeVal) {
product_json.splice(key, 1);
}
});
但是,由于splice
重新索引,在删除项目时,下一个项目不会被检查,但也可能需要删除。
正确的方法是使用filter
:
product_json = product_json.filter(function(val) {
return val != removeVal;
});
答案 2 :(得分:0)
我认为product_json看起来就像你展示的那个。
然后,
代码不应该如下所示吗?
var removeVal = $(this).attr('href');
$.each(product_json, function(key, val){
// val is an array
for( var i in val ) {
// val[i] is also an array
for( var j in val[i] ) {
// val[i][j] is a value
if( val[i][j] == removeVal ) {
val.splice( key );
}
}
}
});
更具体地说,
我需要你解释一下product_json是什么
和$(this).attr('href')
的样本为什么那个图像中的那些数组看起来像那样。