ключи массива функций php, эквивалентные в jquery [дубликат]


Возможный Дубликат:
как получить ключи массива с помощью jQuery?

Встроенная функция Php array_keys(), эквивалент в jquery есть ли в jquery какая-либо встроенная функция, аналогичная функции php array_keys(),.

Пожалуйста, предложите

Author: Community, 2012-10-09

5 answers

Вам придется определить свою собственную функцию, чтобы получить ту же функциональность. Попробуйте это:

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"]
 4
Author: Khior, 2012-10-09 14:53:12

Нет, для этого в jQuery нет ничего конкретного. Существует метод javascript, но он пока не получил широкой поддержки Object.keys() поэтому люди не используют его для общих проектов. Лучшее, что я мог придумать, это

var keys = $.map(your_object, function(value, key) {
  return key;
});
 3
Author: Lee, 2012-10-09 14:38:18

Для этого вам не нужен 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
Author: SDC, 2012-10-09 16:11:00

Взгляните на PHPJS, проект, целью которого является воспроизведение многих функций PHP в ванильном JavaScript с минимальными зависимостями. В вашем случае вы хотите array_keys.

 1
Author: Niet the Dark Absol, 2012-10-09 14:36:28

В JavaScript нет такой вещи, как ассоциативные массивы. Объекты (объектные литералы) обрабатывают аналогичные случаи.

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

И теперь keys содержит все yourObject имена свойств (ключи).

 1
Author: oleq, 2012-10-09 15:00:44