Показать сообщение отдельно
  #4 (permalink)  
Старый 17.11.2018, 21:36
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,587

В javascript всё наследуется от объекта. Потому с массивом можно делать всё тоже что и с объектом(втч использовать перебор for in), а вот с объектом (напрямую) методы массива(forEach) не применить.

Просто for in не рекомендуется использовать на случай стороннего расширения прототипа:
<script>
Object.prototype.ext = 'нежданчик'

var pets = {cat: 'Котэ'}
 
for (let key in pets) {
            document.write(`Свойство: ${key}. Значение свойства: ${pets[key]}<br>`);
        };
</script>
При любом использовании for in рекомендуется использовать проверку на собственные свойства(что при Object.keys не нужно):
<script>
Object.prototype.ext = 'нежданчик'

var pets = {cat: 'Котэ'}
 
for (let key in pets) if(pets.hasOwnProperty(key)) {
            document.write(`Свойство: ${key}. Значение свойства: ${pets[key]}<br>`);
        };
</script>
__________________
29375, 35

Последний раз редактировалось Aetae, 17.11.2018 в 21:39.
Ответить с цитированием