Zastanawiałem się, czy w JavaScript jest jakikolwiek sposób na przechodzenie przez taki obiekt.
for(var i in myObject) {
// ...
}
Ale zdobądź nazwę każdej takiej nieruchomości.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Nie mogę znaleźć czegoś takiego w Google. Mówią, że przekazują nazwy zmiennych razem z nimi, ale nie jest to opcja dla tego, co próbuję osiągnąć.
Dzięki za wszelką pomoc, którą możesz zaoferować.
javascript
object
properties
Olical
źródło
źródło
seperate
powinno byćseparate
'l' + new Array(1000).join('o') + 'ng'
drogę od tego czasu.Odpowiedzi:
Użyj Object.keys ():
Object.keys()
daje tablicę nazw właściwości należących do obiektu wejściowego.źródło
i
jest imię.Więc możesz zrobić:
źródło
hasOwnProperty
jeśli nie chcesz dziedziczonych właściwości. W ten sposób nie będziesz ślepo przestrzegać jakiejś reguły. Może się zdarzyć, że w niektórych przypadkach rzeczywiście chcesz przejrzeć odziedziczone właściwości. Innym sposobem na przechodzenie między własnymi właściwościami obiektu jest użycie Object.keys .Object.keys(obj).forEach(function(prop){ alert obj[prop]})
Oświadczenie Nie zrozumiałem pytania: „Czy mogę znać nazwę właściwości, do której obiekt został dołączony”, ale postanowiłem zostawić odpowiedź, ponieważ niektórzy ludzie mogą tu znaleźć się podczas wyszukiwania.
Nie, obiekt może być dołączony do wielu właściwości, więc nie ma możliwości poznania jego nazwy.
Jak miałaby na imię obj?
Czy na pewno nie chcesz tylko nazwy właściwości z pętli for?
źródło
możesz łatwo iterować po obiektach
np .: jeśli przedmiotem jest var a = {a: „jabłko”, b: „piłka”, c: „kot”, d: „lalka”, e: „słoń”};
źródło
do bezpośredniego dostępu do właściwości obiektu według pozycji ... ogólnie przydatne dla właściwości [0] ... więc zawiera informacje o dalszych ... lub w pliku node.js 'need.cache [0]' dla pierwszego załadowanego modułu zewnętrznego , itd itd.
źródło
Oprócz „Object.keys (obj)”, mamy bardzo prostą pętlę „for ... in” - która zapętla się nad wymiennymi nazwami właściwości obiektu.
źródło
Aby uzyskać właściwość obiektu lub „klucz tablicy” lub „indeks tablicy” w zależności od języka ojczystego ..... Użyj metody Object.keys ().
Ważne, jest to zgodne tylko z „nowoczesnymi przeglądarkami”:
Więc jeśli twój obiekt zostanie wywołany, myObject ...
Walla! To na pewno zadziała w najnowszym Firefoksie i ie11 i chrome ...
Oto dokumentacja w MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
źródło
W ES5
EG, masz ten obiekt:
A teraz, jeśli chcesz mieć funkcję, która jeśli podasz „0” jako parametr - aby uzyskać „STEP_ELEMENT”, jeśli „2”, aby uzyskać „BLUE_ELEMENT” i tak dla
Prawdopodobnie nie jest to najlepsze rozwiązanie problemu, ale dobrze jest dać ci pomysł, jak to zrobić.
Twoje zdrowie.
źródło
Od 2018 r. Możesz korzystać z
Object.getOwnPropertyNames()
opisanego w dokumentacji dla deweloperów Mozilliźródło
Kiedy wykonujesz pętlę for / in, którą ustawiasz jako pierwszą, i jest nazwą właściwości. Masz więc nazwę właściwości i i uzyskujesz dostęp do wartości, wykonując myObject [i].
źródło
Te rozwiązania również działają.
źródło
Używanie
Object.keys()
funkcji do uzyskiwania właściwości odObject
i może pomóc w wyszukiwaniu właściwości według nazwy, na przykład:źródło
Szybkie i brudne:
źródło