Привет я в настоящее время выборки массива с .eachПолучить ключ ассоциативного массива
$.each(messages, function(key,message){ doStuff(); });
Но ключ индекс массива, а не ассоциативный ключ.
Как я могу получить его легко?
Благодаря
Привет я в настоящее время выборки массива с .eachПолучить ключ ассоциативного массива
$.each(messages, function(key,message){ doStuff(); });
Но ключ индекс массива, а не ассоциативный ключ.
Как я могу получить его легко?
Благодаря
var data = {
val1 : 'text1',
val2 : 'text2',
val3 : 'text3'
};
$.each(data, function(key, value) {
alert("The key is '" + key + "' and the value is '" + value + "'");
});
См Demo
Спасибо, я буду использовать массив, чтобы получить эту работу, вы правы –
JavaScript не имеет "ассоциативные массивы", как в PHP, но объекты. Однако объекты могут иметь строковые ключи, соответствующие значению. Массивы представляют собой списки значений, индексированных численно, поэтому, если key
- это число, это должен быть массив, с которым вы работаете, а не объект, и поэтому вы не можете получить ключ, так как его нет.
Таким образом, вы, вероятно, захотите перебрать массив с помощью простого for
-loop вместо итератора на основе обратного вызова, такого как $.each
.
У JavaScript нет «ассоциативных массивов». Он имеет массивы:
[1, 2, 3, 4, 5]
и объекты:
{a: 1, b: 2, c: 3, d: 4, e: 5}
массива не имеют "ключи", они имеют индексы, которые учитываются, начиная с 0.
Массивы доступ с помощью []
, и объекты могут быть доступны с использованием []
или .
.
Пример:
var array = [1,2,3];
array[1] = 4;
console.log(array); // [1,4,3]
var obj = {};
obj.test = 16;
obj['123'] = 24;
console.log(obj); // {test: 16, 123: 24}
Если вы пытаетесь получить доступ к массиву, используя строку в качестве ключа вместо междунар, что может вызвать проблемы. Вы должны установить свойство массива, а не значение.
var array = [1,2,3];
array['test'] = 4; // this doesn't set a value in the array
console.log(array); // [1,2,3]
console.log(array.test); // 4
JQuery в $.each
работает с обоих из них. В обратном вызове для $.each
первый параметр, key
, является либо ключом объекта, либо индексом массива.
$.each([1, 2, 3, 4, 5], function(key, value){
console.log(key); // logs 0 1 2 3 4
});
$.each({a: 1, b: 2, c: 3, d: 4, e: 5}, function(key, value){
console.log(key); // logs 'a' 'b' 'c' 'd' 'e'
});
В массиве нет ассоциативного ключа. Индекс - это ключ. Что ты пытаешься сделать? – Guffa
Где вы Array i.e 'messages'? post – thecodeparadox
Не могли бы вы представить примерный массив (2-3 элемента) и какой «ассоциативный ключ» вы ожидаете? –