您需要定义自己的函数来获得相同的功能。尝试这样做:
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"]
在jQuery中没有特定的方法来实现这一点。虽然有一种JavaScript方法,但它目前还没有得到广泛支持 Object.keys()
因此人们不会将其用于通用项目。我能想到的最好的方法是
var keys = $.map(your_object, function(value, key) {
return key;
});
Object.keys()
现在得到广泛支持,包括IE9+ https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys - sMyles您不需要使用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字符串创建的对象来说,这是理想的方法。var keys = [], i = 0;
for( keys[ i++ ] in yourObject );
现在keys
包含了所有yourObject
的属性名称(键)。
看看PHPJS,这个项目旨在使用最少的依赖关系在纯JavaScript中复制许多PHP函数。在您的情况下,您需要{{link2:array_keys
}}。