Каковы некоторые из практических примеров использования в циклах JavaScript? Они плохо подходят для массивов, поскольку они игнорируют неопределенные ключи и возвращают числовые свойства объекта массива. Я никогда не видел, чтобы они использовались в любом производственном коде. Задумывались ли разработчики об их усталости?Используется для использования в JavaScript
ответ
Они лучше всего подходят для итерации по объектам Javascript или JSON, например {"foo":bar,"baz":boo}
, но не для массивов, см. Больше here для получения дополнительной информации.
Они лучше всего сделать так:
var obj={"foo":bar,"baz":boo}
for(var key in obj){
//hasOwnProperty ensures that it exists and bad stuff doesn't happen with deleted properties
if(obj.hasOwnProperty(key)){
obj[key].doSomething();
}
}
Douglas Крокфорд имеет очень хорошую страницу на этом here. Для массивов они никогда не должны использоваться, но они очень полезны для объектов, особенно если вы не знаете, в каком порядке будут находиться ключи или какие ключи будут там. Для массивов, просто сделать это
for(var i=0;i<array.length;i++){
//do some stuff
}
MDN говорит:
итерацию через перечислимых свойств объекта, в произвольном порядке . Для каждого отдельного свойства могут выполняться операторы.
Вы также можете проверить Exploring JavaScript for-in loops
var str = "hello!", spreadOut = "";
for (var index in str) {
(index > 0) && (spreadOut += " ")
spreadOut += str[index];
}
spreadOut; //"h e l l o !"
Вы можете передать этот thread где CMS объяснил это:
Цель для-в заявлении, чтобы перечислить над объектом , эта инструкция будет расти в цепочке прототипов, , перечисляя также унаследованные свойства, вещь, которая иногда нет желаемый.
Полезно для итерации объектов, где итерация не зависит от порядка. Это полезно несколькими способами.
Переменная, используемая в инструкции for in, является ключом к текущему значению.
Сокращенная нотация может сохранить несколько символов в файле .js.
Это может быть более читаемым.
- 1. JavaScript && Оператор используется для возвращения
- 2. Что используется для повторного использования метода WebRTCMediaStream?
- 3. Transact SQL - который используется для использования
- 4. подстрока используется в JavaScript
- 5. Что используется @ в JavaScript?
- 6. Multipage для использования javascript
- 7. Безопасный для использования Javascript?
- 8. Преобразовать регулярное выражение используется в JavaScript
- 9. Когда используется компилятор TypeScript, который обычно используется для создания JavaScript.
- 10. переменные, когда функция Javascript используется в качестве основы для объекта -
- 11. Javascript не используется в 3.8
- 12. Как «onrendered» используется в javascript?
- 13. Почему используется список(), критический для использования .dots = setNames() в dplyr?
- 14. iPhone: используется ли YAJL для использования в AppStore?
- 15. Какой тип данных используется для использования времени в gorm?
- 16. Способ использования признака используется в определенном классе
- 17. Используется ли JSON только для JavaScript?
- 18. Javascript * и * Оператор используется для параметра строки
- 19. Какова цель использования ~ в JavaScript?
- 20. Javascript - Функция для использования onclick?
- 21. Использование Javascript для использования css
- 22. Javascript скопировать переменную для использования в функции
- 23. Возврат результатов javascript для использования в php
- 24. Код jQuery для использования в качестве Javascript
- 25. Включая информацию в HTML для использования Javascript?
- 26. Лучшая практика для использования JavaScript в Django
- 27. выпадающих категорий для многократного использования в javascript
- 28. Преобразование массива PHP для использования в Javascript
- 29. Шаблоны для использования в Rails и JavaScript
- 30. Альтернатива для использования eval в Javascript
Используйте их, когда вам нужно перебирать объект, чтобы вести себя как хеш-таблица. Например, когда вы возвращаете JSON из запроса и хотите действовать со всеми свойствами объекта, когда вы не уверены, что именно эти свойства будут именно такими. --- совсем не устарели. –
'for in' для объектов, а не массивов. – SLaks
Ну, да, это не лучший способ обработки массивов, но я считаю это чрезвычайно полезным для объектов. – tewathia