Javascript对象删除特定键

时间:2016-11-11 05:13:01

标签: javascript

我遇到了这个对象数组的问题。我需要删除与removeVal匹配的对象。我不会删除。请参阅附件中以红色突出显示的照片。我需要删除所有。

enter image description here

var removeVal = $(this).attr('href');    
         $.each(product_json, function(key, val){

                  if( key == removeVal) {
                        val.splice(key);
                   }

              });

enter image description here

3 个答案:

答案 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')

的样本

为什么那个图像中的那些数组看起来像那样。