Ωme*_*ega 7 javascript regex arrays hash associative-array
让我们有一个像这样的关联数组:
var aArray = {};
aArray.id = 'test';
aArray['x1'] = [1,2,3];
aArray['stackoverflow'] = 'What\'s up?';
aArray['x2'] = [4,5,6];
var keys = [];
for(var key in aArray) {
if (aArray.hasOwnProperty(key)) {
keys.push(key);
}
}
console.log(keys);
Run Code Online (Sandbox Code Playgroud)
有没有简单/简短的方法如何在没有循环的情况下获得数组变量的键数组?
如果是这样,另外,可以将一些正则表达式应用于键列表,以获得匹配这种模式的键(比方说 /^x/)而没有另一个循环?
T.J*_*der 15
有没有简单/简短的方法如何在没有循环的情况下获得数组变量的数组?
是的,ECMAScript 5定义Object.keys了这样做.大多数现代浏览器引擎可能会拥有它,旧版本不会,但它很容易填充(例如,这个垫片确实如此).
如果是这样,另外,可以将一些正则表达式应用于键列表,以便只获得匹配这种模式的键(假设
/^x/)没有(另一个)循环?
不,没有内置功能.记住,写一个简单的函数:
function getKeys(obj, filter) {
var name,
result = [];
for (name in obj) {
if ((!filter || filter.test(name)) && obj.hasOwnProperty(name)) {
result[result.length] = name;
}
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
sco*_*kel 12
JavaScript 1.8.5具有使用Object.keys()内置的此功能.它返回所有键的数组.您可以将垫片用于不受支持的浏览器(MDN也对此有帮助).
作为一个例子看到这个(jsFiddle)......
var obj = { "cat" : "meow", "dog" : "woof"};
alert(Object.keys(obj)); // "cat,dog"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25286 次 |
| 最近记录: |