php函数array_keys在jquery中等效

时间:2012-10-09 14:32:04

标签: php jquery logic business-logic

  

可能重复:
  how to fetch array keys with jQuery?

在pquery中等效的php内置函数array_keys(), 在jquery中是否有类似于php array_keys(),的内置函数。

请建议

5 个答案:

答案 0 :(得分: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"]

答案 1 :(得分:3)

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

var keys = $.map(your_object, function(value, key) {
  return key;
});

答案 2 :(得分: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/

答案 3 :(得分:1)

看看PHPJS,这个项目旨在以最少的依赖关系在vanilla JavaScript中重现许多PHP函数。在您的情况下,您需要array_keys

答案 4 :(得分:1)

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

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

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