jquery中等效的php函数array_keys [重复]

Posted

技术标签:

【中文标题】jquery中等效的php函数array_keys [重复]【英文标题】:php function array_keys equivalent in jquery [duplicate] 【发布时间】:2012-09-29 22:06:48 【问题描述】:

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

php内置函数array_keys(),在jquery中等效 jquery中有没有类似phparray_keys(),的内置函数。

请推荐

【问题讨论】:

看看这个:***.com/questions/1254227/… 顺便说一句:javascript 中的数组只能有数字键,没有关联数组之类的东西。只能由对象模拟(but has flaws) 【参考方案1】:

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

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"]

【讨论】:

【参考方案2】:

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

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

【讨论】:

这是最好的答案,但是Object.keys()现在得到了广泛的支持,包括IE9+ developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…【参考方案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/)

【讨论】:

【参考方案4】:

看看PHPJS,该项目旨在以最少的依赖项在原生 JavaScript 中重现许多 PHP 函数。在你的情况下,你想要array_keys

【讨论】:

【参考方案5】:

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

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

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

【讨论】:

以上是关于jquery中等效的php函数array_keys [重复]的主要内容,如果未能解决你的问题,请参考以下文章

php常用函数

golang( 实现PHP Array 函数 array_column,array_keys, in_array )

PHP数组函数总结

PHP数组函数总结

如何使用 jQuery 获取数组键?

PHP 将PHP date()样式dateFormat转换为等效的jQuery UI datepicker字符串