> Как в цикле for-in в JavaScript вывести только собственные ключи объекта без ключей прототипа (JavaScript)

Уровень: middle · Роль: frontend · Категория: Технические вопросы

Компании: Kaspersky

Стек: JavaScript

> Пример ответа

Для вывода только собственных ключей объекта в цикле for...in необходимо использовать метод hasOwnProperty(), так как for...in перебирает все перечисляемые свойства, включая унаследованные из прототипа.

Пример:

JAVASCRIPT
const obj = { a: 1, b: 2 };
// Добавляем свойство в прототип
Object.prototype.c = 3;
for (let key in obj) {
if (obj.hasOwnProperty(key)) {
console.log(key); // Выведет только 'a' и 'b'
}
}

Более современный и безопасный способ - использовать Object.keys() или Object.getOwnPropertyNames(), которые возвращают только собственные ключи без необходимости проверки:

JAVASCRIPT
Object.keys(obj).forEach(key => console.log(key)); // 'a', 'b'

Однако если требуется именно цикл for...in, проверка через hasOwnProperty остаётся стандартным решением.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью