Jaki jest najlepszy sposób przechowywania key=>value
tablicy w javascript i jak można ją zapętlić?
Kluczem każdego elementu powinien być tag, taki jak {id}
lub just, id
a wartość powinna być wartością liczbową id.
Powinien to być element istniejącej klasy javascript lub zmienna globalna, do której można łatwo odwoływać się za pośrednictwem klasy.
Można użyć jQuery.
javascript
jquery
Kliknij opcję Upvote
źródło
źródło
Array.prototype.forEach
Odpowiedzi:
Właśnie tym jest obiekt JavaScript:
Możesz przejść przez nią za pomocą
for..in
pętli :Zobacz także: Praca z obiektami (MDN).
W ECMAScript6 znajduje się również
Map
(patrz tam tabela kompatybilności przeglądarki):źródło
var foo = Object.create(null)
a następnie dodać do niego właściwości, takie jakfoo.bar = "baz"
. Tworzenie obiektu za pomocą{}
jest równoważne zObject.create(Object.prototype)
, co oznacza, że dziedziczy on wszystkie właściwościObject
. Zwykle nie stanowi to problemu, ale może spowodować, że obiekt będzie miał nieoczekiwane klucze, jeśli jakaś biblioteka zmodyfikowała globalnyObject.prototype
.Jeśli dobrze cię zrozumiałem:
źródło
Możesz użyć mapy .
Uzyskaj wartość mapy za pomocą klucza
Uzyskaj rozmiar mapy
Sprawdź klucz istnieje na mapie
Zdobądź klucze
Uzyskaj wartości
Uzyskaj elementy mapy
Wydrukuj pary klucz-wartość
Wydrukuj tylko klucze mapy
Wydrukuj tylko wartości mapy
źródło
JSON.stringify()
.W javascript tablica wartości klucza jest przechowywana jako obiekt. Istnieją pewne rzeczy, takie jak tablice w javascript, ale nadal są one w pewnym stopniu uważane za obiekty, sprawdź odpowiedzi chłopaków - Dlaczego mogę dodawać nazwane właściwości do tablicy tak, jakby to był obiekt?
Tablice są zwykle widziane przy użyciu składni nawiasów kwadratowych, a obiekty (tablice „key => value”) przy użyciu składni nawiasów klamrowych, chociaż można uzyskać dostęp do właściwości obiektów i ustawiać je przy użyciu składni nawiasów kwadratowych, jak pokazał Aleksiej Romanow.
Tablice w javascript są zwykle używane tylko z numerycznymi, automatycznie zwiększanymi klawiszami, ale obiekty javascript mogą przechowywać nazwane pary wartości kluczy, funkcje, a nawet inne obiekty.
Simple Array np.
Wynik -
0 „Kanada”
1 „My”
2 „Francja”
3 „Włochy”
Widzimy powyżej, że możemy zapętlić tablicę numeryczną za pomocą funkcji jQuery.each i uzyskać dostęp do informacji poza pętlą za pomocą nawiasów kwadratowych z klawiszami numerycznymi.
Prosty obiekt (json)
Wynik -
Nazywam się James i jestem programistą o długości 6 stóp 1
nazwać Jamesa
programista zawodu
wysokość Obiekt {stopy: 6, cale: 1}
W języku takim jak php byłoby to uważane za tablicę wielowymiarową z parami wartości klucza lub tablicę w tablicy. Zakładam, że ponieważ pytałeś o sposób przechodzenia przez tablicę wartości klucza, chciałbyś wiedzieć, jak uzyskać obiekt (klucz => tablica wartości) taki jak obiekt osoby powyżej, aby mieć, powiedzmy, więcej niż jedną osobę.
Cóż, teraz, gdy wiemy, że tablice javascript są zwykle używane do indeksowania numerycznego, a obiekty bardziej elastycznie do indeksowania asocjacyjnego, użyjemy ich razem, aby utworzyć tablicę obiektów, które możemy zapętlać, tak jak to -
Tablica JSON (tablica obiektów) -
Wynik -
Nazywam się Joshua i jestem CEO 5 stóp
Nazywam się James i jestem programistą o długości 6 stóp 1
Nazywam się Peter i jestem projektantem 4 stóp 10
Nazywam się Joshua i jestem CEO 5 stóp
Zauważ, że poza pętlą muszę użyć składni nawiasu kwadratowego z kluczem numerycznym, ponieważ jest to teraz tablica obiektów indeksowana numerycznie, i oczywiście wewnątrz pętli sugerowany jest klucz numeryczny.
źródło
Obiekty w tablicy:
źródło
Po prostu zrób to
źródło
Wiem, że jest późno, ale może być pomocny dla tych, którzy chcą innych sposobów. Innym sposobem przechowywania wartości klucza => jest użycie metody tablicowej o nazwie map (); ( https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map ) możesz również użyć funkcji strzałki
źródło
Dzisiaj wydaliśmy nasz nowy pakiet o nazwie laravel-blade-javascript. Zapewnia Ci javascriptową dyrektywę Blade do eksportowania zmiennych PHP do JavaScript. Tak więc zasadniczo robi to samo, co popularny pakiet Jeff-Way-PHP-Vars-To-Js-Transformer, ale zamiast eksportować zmienne w kontrolerze, nasz pakiet robi to w widoku.
Oto przykład, w jaki sposób można go użyć:
Renderowany widok wyświetli:
W przeglądarce masz teraz dostęp do kluczowej zmiennej:
Możesz także użyć jednego argumentu:
Co da wynik taki sam jak w pierwszym przykładzie.
Możesz także użyć pliku konfiguracyjnego, aby skonfigurować przestrzeń nazw, w której powinny się znajdować wszystkie eksportowane zmienne JavaScript.
źródło