gre*_*ire 57 javascript hashmap
我找不到javascript相当于php array_keys()/array_values()
对于不熟悉php的人给出以下js哈希:
var myHash = {"apples": 3, "oranges": 4, "bananas": 42}
Run Code Online (Sandbox Code Playgroud)
我如何获得一系列键,即
["apples", "oranges", "bananas"]
Run Code Online (Sandbox Code Playgroud)
与值相同的问题,即
[3, 4, 42]
Run Code Online (Sandbox Code Playgroud)
可以使用jQuery.
小智 80
在ES5支持(或shimmed)浏览器...
var keys = Object.keys(myHash);
var values = keys.map(function(v) { return myHash[v]; });
Run Code Online (Sandbox Code Playgroud)
来自MDN的垫片......
Imp*_*Imp 47
var a = {"apples": 3, "oranges": 4, "bananas": 42};
var array_keys = new Array();
var array_values = new Array();
for (var key in a) {
array_keys.push(key);
array_values.push(a[key]);
}
alert(array_keys);
alert(array_values);
Run Code Online (Sandbox Code Playgroud)
Lit*_*ral 15
第二个答案(在撰写本文时)给出:
var values = keys.map(function(v) { return myHash[v]; });
Run Code Online (Sandbox Code Playgroud)
但我更喜欢使用jQuery自己的$.map:
var values = $.map(myHash, function(v) { return v; });
Run Code Online (Sandbox Code Playgroud)
由于jQuery负责跨浏览器兼容性.再加上它更短:)
无论如何,我总是尽量保持功能.单行是比循环更好的.
| 归档时间: |
|
| 查看次数: |
178729 次 |
| 最近记录: |