Встречается на собеседованиях • сегодня
Почему нельзя переписать цикл for...in на while
Цикл for...in предназначен для перебора перечисляемых свойств объекта, включая унаследованные. Его нельзя напрямую заменить на while, так как for...in автоматически обрабатывает цепочку прототипов и перечисляет ключи, а в while это нужно делать вручную.
Пример с for...in:
javascript
const obj = { a: 1, b: 2 };
for (const key in obj) {
console.log(key); // 'a', 'b'
}Аналог на while будет сложнее и менее читаемым:
javascript
const obj = { a: 1, b: 2 };
const keys = Object.keys(obj);
let i = 0;
while (i < keys.length) {
const key = keys[i];
console.log(key); // 'a', 'b'
i++;
}Основные проблемы замены:
- Нужно вручную получать ключи через
Object.keys() - Теряется автоматический перебор по прототипам
- Код становится менее читаемым и более многословным

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы