Ключевые отличия между операторами for…in и for…of при обработке массивов заключаются в следующем:
- for…in проходит по всем перечисляемым свойствам объекта (включая свойства, унаследованные от прототипа). 1 В случае с массивами он возвращает имена свойств, определённых пользователем помимо числовых индексов. 3
- for…of проходит только по значениям элементов объекта, которые доступны через итератор. 1 В случае с массивами итератором является индекс каждого элемента массива. 1 Следовательно, for…of проходит через все числовые индексы массива и возвращает соответствующие значения. 1 Он не проходит через какие-либо другие свойства, включая те, которые были добавлены вручную. 1
Таким образом, выбор между этими операторами зависит от конкретной ситуации и требуемого результата. 1