5

可能重复:
如何使用 jQuery 获取数组键?

jquery 中等效的php 内置函数array_keys(),jquery 中是否有与 php 类似的内置函数array_keys(),

请建议

4

5 回答 5

4

您必须定义自己的函数才能获得相同的功能。尝试这个:

function arrayKeys(input) {
    var output = new Array();
    var counter = 0;
    for (i in input) {
        output[counter++] = i;
    } 
    return output; 
}

arrayKeys({"one":1, "two":2, "three":3}); // returns ["one","two","three"]
于 2012-10-09T14:53:12.970 回答
3

为此,您不需要 jQuery 或任何其他库——它是 Javascript 的标准部分。

for(var key in myObject) {
    alert(key);
}

这应该足以让您遍历对象。但是如果你想真正将键放入它们自己的数组中(即把它变成一个真正的 php 函数的克隆),那么扩展上面的内容是相当简单的:

function array_keys(myObject) {
    output = [];
    for(var key in myObject) {
        output.push(key);
    }
    return output;
}

for(..in..)请注意,对于具有您不想包含的属性或方法的对象(例如核心系统属性)使用该技术有一些注意事项,但对于您自己或从 JSON 字符串创建的简单对象,这是理想的.

(有关警告的更多信息,请参阅http://yuiblog.com/blog/2006/09/26/for-in-intrigue/

于 2012-10-09T14:49:24.017 回答
3

不,在 jQuery 中没有任何具体的内容。有一种 javascript 方法,但尚未得到广泛支持,Object.keys()因此人们不会将它用于通用项目。我能想到的最好的事情是

var keys = $.map(your_object, function(value, key) {
  return key;
});
于 2012-10-09T14:38:18.110 回答
1

在 JavaScript 中,没有像关联数组这样的东西。对象(对象文字)处理类似的情况。

var keys = [], i = 0;    
for( keys[ i++ ] in yourObject );

现在keys包含所有yourObject属性名称(键)。

于 2012-10-09T15:00:44.023 回答
1

看看PHPJS,这是一个旨在以最少的依赖项在 vanilla JavaScript 中重现许多 PHP 函数的项目。在你的情况下,你想要array_keys.

于 2012-10-09T14:36:28.470 回答