在pquery中等效的php内置函数
array_keys(),
在jquery中是否有类似于php array_keys(),
的内置函数。
请建议
答案 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
属性名称(键)。