Есть массив объектов в глобальном пространстве имён. Требуется получить массив имён этих объектов, которые имеют определённое свойство. Делаю так:
var test = {
pr: true
}
alert(getObjName('pr'))
function getObjName(key) {
var arr = [];
for (var obj in window) {
if (window[obj][key]) arr.push(obj)
}
return arr
}
Пробовал вместо window[obj][key] window[obj].hasOwnProperty(key) результат тот же. Если вместо arr.push(obj) поставить alert(obj), то искомый объект отобразится. Если же убрать key из window[obj][key] , то мы получим массив свойств window.
Код рабочий, за исключением того, что нет проверки на существование самого window[obj]
. Так как в window
довольно много служебных свойств некоторые из них могут иметь значение null
и при попытке взять у null
свойство будет соответствующая ошибка.
Для решения достаточно исправить условие следующим образом:
window[obj] && window[obj][key]
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Здравствуйте, подскажите пожалуйста какие варианты возможны для реализации такой задачи? Есть ползунок (input type range) он управляет каруселью...
Здравствуйте! Разбираю тему замыкания в JS и не могу понять двух моментов в коде с MDN по темеОбъясните пожалуйста (вопросы после кода)
Как скопировать value ключа из localstorage в значение textarea? Чтобы потом использовать их при отправке формы
Добрый день, возникла такая проблемаЯ хочу при выборе файла (input type="file") Чтобы форма сабмитилась