Mam obiekt JavaScript jak
var obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
key4: 'value4'
}
Jak mogę uzyskać długość i listę kluczy w tym obiekcie?
javascript
użytkownik160820
źródło
źródło
Odpowiedzi:
źródło
keys
.Object.prototype
, czego i tak nie powinieneś robić. Jednak w przypadku niestandardowych konstruktorów masz rację.[]
do niej (lub warray()
tamtym czasie) powoduje, że jest to tablica, którą można bezpiecznie wykorzystać jako tablicę.Jest obsługiwany w większości głównych przeglądarek.
źródło
for(key in ob)
!Object.keys
nie wymienia kluczy z prototypów, ale.. in obj
robi to.Underscore.js sprawia, że transformacja jest dość czysta:
Edycja: Stęskniłem się za tym, że możesz to zrobić:
źródło
Jeśli chcesz tylko kluczy specyficznych dla tego konkretnego obiektu, a nie żadnych pochodnych
prototype
właściwości:na przykład:
źródło
aby uzyskać dostęp do dowolnej wartości z obiektu, możesz użyć obj [klucz];
źródło
keys.length
, co jest inne dla każdej iteracji, ponieważ każda iteracja wstawia wartość.Możesz spróbować:
to zwróci:
aby uzyskać listę kluczy lub
aby uzyskać wartości
źródło
Odpowiedź Anuragsa jest w zasadzie poprawna. Aby jednak obsługiwać również
Object.keys(obj)
starsze przeglądarki, możesz użyć poniższego kodu skopiowanego z https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys . DodajeObject.keys(obj)
metodę, jeśli nie jest dostępna w przeglądarce.źródło
Zauważ, że w coffeescript można to zrobić we wszystkich przeglądarkach i węzłach as
a zatem
źródło
Rozwiązanie rekurencyjne dla przeglądarek obsługujących ECMAScript 5:
źródło
źródło
Użyj
Object.keys()
... to jest droga.Pełna dokumentacja jest dostępna na stronie MDN, do której link znajduje się poniżej:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
źródło
Jeśli zdecydujesz się użyć Underscore.js, lepiej
źródło
W JavaScript obiekt jest samodzielną jednostką o właściwościach i typie.
Do pobierania wartości z Object w postaci tablicy: Object .values (obj) // obj to nazwa obiektu, którego użyłeś Wynik -> [„wartość1”, „wartość2”, „wartość3”, „wartość4”]
Do pobierania kluczy z Object w postaci tablicy: Object .keys (obj) // obj to nazwa obiektu, którego użyłeś Wynik -> [„klucz1”, „klucz2”, „klucz3”, „klucz4”]
Ponieważ obie funkcje zwracają tablicę, można uzyskać długość kluczy lub wartość za pomocą właściwości length. Na przykład - Object .values (obj) .length lub Object .keys (obj) .length
źródło
W przypadku łańcucha rozdzielanego przecinkami zawierającego listę kluczy obiektu JSON spróbuj wykonać następujące czynności:
źródło
Za pomocą ES6 można używać
forEach
do iteracji po klawiszach obiektu. Aby uzyskać wszystkie klucze, możesz użyć,Object.keys
który zwraca wszystkie klucze w obiekcieKrótka ręka powyższego fragmentu będzie, która bierze tylko jeden parametr
źródło
źródło
za pomocą metody wycinania, stosowania i łączenia.
źródło