首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >数组形式的哈希键/值

数组形式的哈希键/值
EN

Stack Overflow用户
提问于 2012-05-02 21:50:36
回答 6查看 193.9K关注 0票数 65

我找不到与PHP array_keys() / array_values()对应的JavaScript。

对于不熟悉PHP的人,给出了以下JavaScript散列:

代码语言:javascript
复制
var myHash = {"apples": 3, "oranges": 4, "bananas": 42}

如何获取键数组,即,

代码语言:javascript
复制
["apples", "oranges", "bananas"]

同样的问题也适用于这些值,即

代码语言:javascript
复制
[3, 4, 42]

可以使用jQuery。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-05-02 21:53:24

代码语言:javascript
复制
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);
票数 51
EN

Stack Overflow用户

发布于 2014-01-17 10:39:53

第二个答案(在撰写本文时)给出了:

代码语言:javascript
复制
var values = keys.map(function(v) { return myHash[v]; });

但我更喜欢使用jQuery自己的$.map

代码语言:javascript
复制
var values = $.map(myHash, function(v) { return v; });

因为jQuery考虑了跨浏览器的兼容性。另外,它更短:)

无论如何,我总是试着尽可能地发挥作用。一行代码比循环代码更友好。

票数 15
EN

Stack Overflow用户

发布于 2012-05-02 21:54:26

代码语言:javascript
复制
function getKeys(obj){
    var keys = [];
    for (key in obj) {
        if (obj.hasOwnProperty(key)) { keys[keys.length] = key; }
    } 
    return keys;
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10415133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档