2012-10-09 61 views
5

可能重複:
how to fetch array keys with jQuery?PHP函數array_keys等同於jQuery的

PHP內置函數array_keys(),相當於jQuery的 有任何內置的功能類似的PHP的jQuery array_keys(),

請建議

+1

看看這個:http://stackoverflow.com/questions/1254227/how-to-fetch-array-keys-with-jquery – Josh

+1

順便說一句:Javascript中的數組只能有數字鍵,沒有這樣的事情關聯數組。它只能被一個對象模擬([但有缺陷])(http://blog.kevinchisholm.com/javascript/associative-arrays-in-javascript/) –

回答

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

看看PHPJS,一個項目,旨在重現許多PHP函數在香草的JavaScript以最小的依賴。在你的情況下,你想要array_keys

3

不,沒有什麼具體的jQuery爲此。有一個JavaScript方法,但它還沒有得到廣泛支持,但是Object.keys()因此人們不會將它用於通用項目。我能想到的最好的事情是

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

這是最好的答案,但是Object.keys( )'現在得到廣泛支持,其中包括IE9 + https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys – sMyles

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; 
} 

注意,也有使用注意事項對於具有您不想包含的屬性或方法(例如核心系統屬性)的對象,但對於您自己創建的簡單對象或JSON字符串而言,這是理想的技術。

(有關注意事項的詳細信息,請參閱http://yuiblog.com/blog/2006/09/26/for-in-intrigue/

1

在JavaScript中沒有像關聯數組這樣的東西。對象(對象文字)處理類似的情況。

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

現在keys包含所有yourObject屬性名稱(鍵)。