2016-02-16 487 views
1

我有一個object元素和一個array元素,其中包含object的某些項目。刪除陣列中的對象項目

我想刪除數組引用的對象中的項目。

var array = ["test1","test2"]; 

var object =  

    ... 
"test1": { 
    "na": [ 
     "t", 
     "t-t", 
     "t-98", 
     "t" 
    ] 
}, 
"test2": { 
    "python": [ 
     "jjj" 
    ] 
} 

... 

當我使用

delete object.test1 

它的工作原理。

但是在我的情況,我想:

for(var i = 0 ; i < array.length ; i++){ 
    delete object.array[i]; 
} 

但我得到:

object.array未定義

任何想法?

Fiddle

+1

這是因爲你的'object'對象沒有一個名爲'array'的屬性,它是一個獨立的數組對象,並且與你的'object'對象沒有任何關係。這就是你得到錯誤的原因。 – Dummy

+6

'object.array [i];'應該是'object [array [i]]'。 – meagar

+0

他們之間有什麼區別? – AshBringer

回答

2

使用object[array[i]],如果您正在使用lodash object.array不存在

或下劃線,你也可以使用_.omit功能。

object = _.omit(object, array)

1

你可能會需要使用數組對象符號。

delete object[array[i]]

陣列的符號是檢索屬性值,如果你使用一個字符串值索引的唯一途徑。