2016-07-31 86 views
0

如何僅選擇具有特定字符開始的對象中的鍵? 在MI情況下,關鍵的begining以點(「.prop_2' 和」 .prop_4' )javascript檢查對象屬性開始

mi_obj = { 
    'prop_1': 'value 1', 
    '.prop_2': 'value 2', 
    prop_3: 'value 3', 
    '.prop_4': 'value 4' 
} 

我知道這是可能有‘for’循環,但沒有其他更好的選擇?

+1

'Object.keys (mi_obj).filter(a => a.startsWith(「。」));'可能是更好的選擇,但這取決於你是否需要支持較舊的眉毛SERS。 – Xufox

回答

2

可以做一個過濾器上的按鍵,這將返回所有以點

Object.keys(mi_obj).filter(function(key) { 
     return key.starsWith('.'); 
    } 
1

在我看來開始鍵的陣列,最簡單的方法是一個簡單的for循環(如你所說)。

但是,如果你想要另一種方式(假設它很優雅),你可以採取所有的屬性,並使用filter

首先,取對象的屬性作爲數組:

Object.keys(mi_obj); 

然後過濾他們:

Object.keys(mi_obj).filter(function(x) {return x.startsWith("."); }); 

或用一個lambda表達式:

Object.keys(mi_obj).filter(function(x) {(x) => x.startsWith("."));