2016-11-11 83 views
0

我遇到了此對象數組的問題。我需要刪除與removeVal相匹配的對象。我不會刪除它。請參閱以紅色突出顯示的附加照片。我需要刪除這一切。Javascript對象刪除特定鍵

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

+1

確保removeVal和關鍵的數據類型應該相同 – Jigar7521

+1

我們展示product_json數據 – Mahi

+0

您可以用'filter'功能。 – uzaif

回答

1

希望這將幫助你,如果我理解正確,

var removeVal = $(this).attr('href'); 

delete product_json[removeVal] 
+0

除了刪除不會真的完全刪除該對象索引它只是將其值更改爲undefined – Beginner

+0

謝謝!它像一個魅力... :) – Rbex

+0

酷哥們!那麼你可以標記它是正確的 – siva

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; 
}); 
+0

我需要刪除突出顯示的紅色。我不在乎它是否重新索引。它仍然不起作用。 – Rbex

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是什麼

和$(這)樣.attr( 'href' 屬性)

,爲什麼那些該圖像中的數組看起來像那樣。

+0

我已經更新了這個問題。 – Rbex