Hi Get Jestem obecnie ściągam tablicę z .eachklucz tablicy asocjacyjnej
$.each(messages, function(key,message){ doStuff(); });
Ale kluczem jest indeksem tablicy, a nie klucz asocjacyjne.
Jak mogę to łatwo uzyskać?
Dzięki
Hi Get Jestem obecnie ściągam tablicę z .eachklucz tablicy asocjacyjnej
$.each(messages, function(key,message){ doStuff(); });
Ale kluczem jest indeksem tablicy, a nie klucz asocjacyjne.
Jak mogę to łatwo uzyskać?
Dzięki
var data = {
val1 : 'text1',
val2 : 'text2',
val3 : 'text3'
};
$.each(data, function(key, value) {
alert("The key is '" + key + "' and the value is '" + value + "'");
});
Zobacz Demo
Dzięki, użyję tablicy, aby uzyskać tę pracę, masz rację –
JavaScript nie mają "tablice asocjacyjne", jak w PHP, ale obiekty. Obiekty mogą mieć jednak klucze łańcuchowe, które odpowiadają wartości. Tablice są listami wartości o indeksach numerycznie, więc jeśli jest liczbą, musi to być tablica, z którą pracujesz, a nie obiekt, a zatem nie możesz uzyskać klucza, ponieważ go nie ma.
Tak więc prawdopodobnie będziesz chciał iterować po tablicy za pomocą prostego for
-lub zamiast iteratora opartego na oddzwanianiu, takiego jak $.each
.
JavaScript nie ma "tablic asocjacyjnych". Ma tablice:
[1, 2, 3, 4, 5]
i obiekty:
{a: 1, b: 2, c: 3, d: 4, e: 5}
Array nie mają "Keys", mają indeksy, które są obliczane, począwszy od 0.
Tablice są dostępne przy użyciu []
, a obiekty mogą być dostępne za pomocą []
lub .
.
Przykład:
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}
przypadku próby uzyskania dostępu do tablicy przy użyciu ciąg jako klucz zamiast int, które mogą powodować problemy. Użytkownik ustawiłby właściwość tablicy, a nie wartość.
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's $.each
współpracuje z obydwoma. W wywołaniu zwrotnym dla $.each
, pierwszy parametr, key
, jest albo kluczem obiektu, albo indeksem tablicy.
$.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'
});
Tablica nie ma żadnego asocjacyjnego klucza. Indeks jest kluczem. Co próbujesz zrobić? – Guffa
Gdzie jest tablica, czyli "wiadomości"? post, że – thecodeparadox
Czy mógłbyś podać przykładową tablicę (2-3 elementy) i jakiego "klucza asocjacyjnego" oczekujesz? –