Первый тип: цикл for, который также является наиболее распространенным.
константа обр = [11,22,33,44,55,66,77,88]
for (let i = 0; i < arr.length; i++) { console.log(arr[i]) }
Второй: forEach()
1) forEach() обходит обычные массивы
arr.forEach( function(item){ console.log(item) } )
2) forEach() перебирает массив типов объектов
const arr = [ {id:1,name:'zhangsan'}, {id:2,name:'lisi'}, {id:3,name:'wangwu'} ] arr.forEach( function(item){ console.log(item.id + '---' + item.name) })
Выходной результат:
Третье: метод map()
map означает «карта», исходный массив «отображается» в соответствующий новый массив
var newArr = arr.map( function(value,index){ console.log(value + '---' + index) return value + 10}) console.log(newArr)
Выходной результат:
Примечание: разница между forEach() и map():
1. forEach: используется для обхода каждого элемента в массиве, этот метод не имеет возвращаемого значения и не влияет на исходный массив.
2. карта: поддержка возврата, который эквивалентен клону исходного массива, изменяя каждый элемент клона, не затрагивая исходный массив.
Четвертый: метод for….in
for….in — это стандарт es5, этот метод неэффективен для обхода массива, в основном используется для перебора свойств объекта
1) for…в обход массива
for(let item in arr){ console.log(arr[item]) }
Подсказка: for…in не следует использовать для перебора массива, где порядок индексов имеет значение.
Индекс массива — это просто свойство перечисления с именем сертификата, то же самое, что и универсальное свойство объекта. Нет никакой гарантии, что for…in вернет индексы в любом конкретном порядке. Оператор цикла for…in вернет все перечисляемые свойства, включая имена нецелочисленных и унаследованных типов.
2) для…..при обходе объекта
Перебрать свойства объекта, динамически получить ключ в js и получить соответствующее значение = obj[key] в объекте
const obj = { a:1, b:2, c:3 } for(let key in obj){ console.log(key + '---' + obj[key] ) }
Выходной результат:
Пятый: метод for…….of (поддержка es6)
for(let item of arr){ console.log(item) }
Дополнительные материалы на PlainEnglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord . Заинтересованы в хакинге роста? Ознакомьтесь с разделом Схема.