2014-02-07 80 views
-1

我有一個名爲x的數組。它包含三個字段的對象。我如何能讓另一個陣列 調用xminix相同,但是缺少名爲c的字段?如何從對象數組中刪除一個字段?

var x = [ 
    { a : 1, b : 2, c : 3 }, 
    { a : 3, b : 4, c : 5 } 
]; 
+1

我很想回答:'var xmini = [{a = 1,b = 2},{a = 3,b = 4}];' – AnalogWeapon

+0

實際問題是什麼? –

+0

如果你所需要的只是''''回來'未定義',那麼你可以使用protoypal繼承。 'x.map(function(o){return Object.create(o,{c:{value:undefined}});});'完全取決於你如何使用數據。 –

回答

3

此方法不會影響原始的x對象。

var xmini = [], 
    tmpObj = {}; 

for (var i = 0; i < x.length; i++) { 
    for (var key in x[i]) { 
     if (key !== 'c') { 
      tmpObj[key] = x[i][key]; 
     } 
    } 
    xmini.push(tmpObj); 
    tmpObj = {}; 
} 

您應該嘗試更具體地瞭解您嘗試過的以及您試圖完成的任務。對你的問題的另一個有效答案(就像你說的那樣)很簡單:var xmini = [{a = 1, b = 2}, {a = 3, b = 4}];,但是我認爲你需要一個函數來以編程方式創建這個新對象,而不需要改變原始對象,也不需要知道任何關於原始對象的其他屬性。