Мне было интересно, есть ли какой-либо способ в JavaScript, чтобы пройти через объект, как это.
for(var i in myObject) {
// ...
}
Но получите название каждого свойства, как это.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Я не могу найти ничего подобного в Google. Они говорят передать им имена переменных, но это не вариант того, чего я пытаюсь достичь.
Спасибо за любую помощь, которую вы можете предложить.
javascript
object
properties
Olical
источник
источник
seperate
должно бытьseparate
'l' + new Array(1000).join('o') + 'ng'
путь с тех пор.Ответы:
Используйте Object.keys ():
Object.keys()
дает вам массив имен свойств, принадлежащих входному объекту.источник
i
это имя.Так что вы могли бы сделать:
источник
hasOwnProperty
если вы не хотите наследуемых свойств. Таким образом, вы не будете слепо следовать какому-то правилу. Может случиться так, что в некоторых случаях вы действительно хотите посмотреть на унаследованные свойства. Другой способ перебрать собственные свойства объекта - использовать Object.keys .Object.keys(obj).forEach(function(prop){ alert obj[prop]})
Отказ от ответственности Я неправильно понял вопрос: «Могу ли я узнать имя свойства, к которому был прикреплен объект», но решил оставить ответ, поскольку некоторые люди могут оказаться здесь при поиске этого.
Нет, объект может быть присоединен к нескольким свойствам, поэтому у него нет возможности узнать его имя.
Какое имя будет у obj?
Вы уверены, что не хотите просто имя свойства из цикла for?
источник
Вы можете легко перебирать объекты
Например: если объект является var a = {a: 'apple', b: 'ball', c: 'cat', d: 'doll', e: 'elephant'};
источник
для прямого доступа к свойству объекта по позиции ... обычно полезно для свойства [0] ... поэтому оно содержит информацию о дальнейшем ... или в файле node.js require.cache [0] для первого загруженного внешнего модуля и т. д. и т. д.
источник
Помимо «Object.keys (obj)», у нас есть очень простой цикл «for ... in», который циклически перебирает перечисляемые имена свойств объекта.
источник
Чтобы получить свойство объекта или «ключ массива» или «индекс массива» в зависимости от того, какой у вас родной язык ..... Используйте метод Object.keys ().
Важно, это совместимо только с «современными браузерами»:
Так что если ваш объект называется, myObject ...
Walla! Это определенно будет работать в последних версиях Firefox и IE11 и Chrome ...
Вот некоторая документация в MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
источник
В ES5
Например, у вас есть такой объект:
И теперь, если вы хотите иметь функцию, которая, если вы передадите «0» в качестве параметра - получить «STEP_ELEMENT», если «2» - «BLUE_ELEMENT» и так для
Вероятно, это не лучшее решение проблемы, но полезно дать вам представление о том, как это сделать.
Приветствия.
источник
Начиная с 2018 года, вы можете использовать,
Object.getOwnPropertyNames()
как описано в документации разработчика Mozillaисточник
Когда вы делаете цикл for / in, который вы устанавливаете первым, i - это имя свойства. Итак, у вас есть имя свойства i и доступ к значению с помощью myObject [i].
источник
Эти решения тоже работают.
источник
Использование
Object.keys()
функции для получения свойств от объектаObject
, и это может помочь в поиске свойств по имени, например:источник
Быстро и грязно:
источник