2016-07-31 81 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("."));