Если у меня есть объект JS, как:
var foo = { 'bar' : 'baz' }
Если я знаю, что у foo
него есть такая базовая структура ключ / значение, но не знаю название ключа, какой самый простой способ получить его? for ... in
? $.each()
? Я надеюсь, что есть что-то лучше ....
javascript
jquery
sprugman
источник
источник
Ответы:
Если вы хотите получить все ключи, ECMAScript 5 введен
Object.keys
. Это поддерживается только новыми браузерами, но документация MDC предоставляет альтернативную реализацию (которая также используетfor...in
btw):Конечно, если вы хотите и ключ, и значение, тогда
for...in
это единственное разумное решение.источник
p
дает мне ключ, но как мне получить значение ключа? Спасибо.Вы бы перебрали внутри объекта цикл for:
Или
источник
foo[i]
быть"_proto_"
?foo[i]
еслиi
естьsome string
?Вы можете получить доступ к каждому ключу индивидуально, не повторяя, как в:
источник
const [firstKey, ...rest] = Object.keys(obj);
Учитывая ваш объект:
Чтобы получить
bar
, используйте:Чтобы получить
baz
, используйте:Предполагая один объект
источник
Один лайнер для вас:
источник
Это самый простой и легкий способ. Вот как мы это делаем.
Теперь вы можете перебирать объекты и получать доступ к значениям, как показано ниже:
источник
TypeError
если вы ожидаете, что ключ будет номером. Потому что ключи всегда являются строками.У меня была такая же проблема, и это то, что сработало
источник
var value = person[key];
? Таким образом, вам не нужно знать ключ значения, которое вы хотите получить.См. MDN
источник
Я не вижу ничего, кроме
for (var key in foo)
.источник
Самый простой способ - просто использовать Underscore.js:
Да, вам нужна дополнительная библиотека, но это так просто!
источник
Нет другого пути, кроме
for ... in
. Если вы не хотите использовать это (например, потому что минимально неэффективно тестироватьhasOwnProperty
на каждой итерации?), Тогда используйте другую конструкцию, например, массив kvp:источник
Как вы упомянули
$.each()
, вот удобный подход, который будет работать в jQuery 1.6+:источник
Object.keys () Метод Object.keys () возвращает массив собственных перечислимых свойств данного объекта в том же порядке, что и в цикле for ... in (отличие состоит в том, что цикл for-in перечисляет свойства в цепи прототипа).
Object.values () Метод Object.values () возвращает массив значений собственного перечисляемого свойства данного объекта в том же порядке, что и в цикле for ... in (отличие состоит в том, что цикл for-in перечисляет свойства в цепи прототипа).
Для получения дополнительной информации, пожалуйста, перейдите сюда
источник
использовать для каждого цикла для доступа к ключам в объекте или карты в JavaScript
Примечание: вы также можете использовать
это даст вам такой вывод:
[бар];
источник
Ну
$.each
, это конструкция библиотеки, в то времяfor ... in
как нативный JS, который должен быть лучшеисточник
Вы можете использовать функциональность Object.keys для получения ключей, таких как:
источник
для отображения в виде строки просто используйте:
источник
Лучший способ получить ключ / значение объекта.
источник