我有一个带有命名键的对象:
var names = {
"Peter Pan": {...},
"Peter Parker": {...},
"Tony Stark": {...},
...
}
Run Code Online (Sandbox Code Playgroud)
有没有办法通过模式获取所有键,例如.所有的钥匙都有彼得?
情况是我希望将所有过滤的密钥放在一个数组中,例如:
var filteredNames: [
"Peter Pan",
"Peter Parker",
...
]
Run Code Online (Sandbox Code Playgroud)
Lep*_*eus 21
您可以通过自己循环键来轻松完成:
var filtered_keys = function(obj, filter) {
var key, keys = [];
for (key in obj) {
if (obj.hasOwnProperty(key) && filter.test(key)) {
keys.push(key);
}
}
return keys;
}
// example:
var filteredNames = filtered_keys(names, /Peter/); // second parameter is a javascript regex object, so for exemple for case insensitive you would do /Peter/i
Run Code Online (Sandbox Code Playgroud)
ES6
let filtered_keys = (obj, filter) => {
let key, keys = []
for (key in obj)
if (obj.hasOwnProperty(key) && filter.test(key))
keys.push(key)
return keys
}
// example:
let filteredNames = filtered_keys(names, /Peter/)
Run Code Online (Sandbox Code Playgroud)
Gab*_*iel 16
var filteredNames = Object.keys(names).filter((name) => /Peter/.test(name));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13474 次 |
| 最近记录: |