【001】for、every 循环 - 图1

全局上有一个1-10的listA数组

  1. let listA = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

for万年写法

  1. /* for loop */
  2. for (let i = 0; i < listA.length; i++) {
  3. const item = listA[i]
  4. console.log('for' + ' ' + item)
  5. }

forEach的用法

  1. /* forEach loop */
  2. listA.forEach(function (item) {
  3. console.log('forEach' + ' ' + item)
  4. // forEach 中不支持break和continue
  5. })

every的用法

  1. /* every loop */
  2. listA.every(function (item) {
  3. console.log('every' + ' ' + item)
  4. return true
  5. })

every循环中挑出

  1. /* every loop */
  2. listA.every(function (item) {
  3. console.log('every' + ' ' + item)
  4. return true
  5. })
  6. /* every循环中的跳出 */
  7. listA.every(function (item) {
  8. if (item === 8) {
  9. return false
  10. // return false = break 跳出循环
  11. } else {
  12. console.log('Not Equal = 8 ' + ' ' + item)
  13. return true
  14. }
  15. })

every循环中的跳过和继续执行

  1. listA.every(function (item) {
  2. if (item === 2) {
  3. console.log('Skip when item = 2 ' + ' ' + item)
  4. // continue 当等于2时跳过
  5. } else {
  6. console.log('item = ' + ' ' + item)
  7. // 这里的代码会继续执行
  8. }
  9. return true
  10. // 技巧是把 return true 写在外面
  11. })

for…in循环

  1. listA.a = 8
  2. // for...in循环会[属性]也遍历出来!【缺陷】
  3. // for...in是针对对象的,不要给数组用!
  4. // for...in默认的index是字符串string!
  5. for (const index in listA) {
  6. console.log(index, listA[index])
  7. }
  8. // for...in中用数字index的方式是 * N
  9. for (const index in listA) {
  10. if (index * 1 === 8) {
  11. console.log('i love number 8 !')
  12. } else { console.log(index, listA[index]) }
  13. }

for…of循环

  1. for (const item of listA) {
  2. console.log('for...of ' + ' ' + item)
  3. }
  4. const Price = {
  5. beer: [1.5, 2.99, 5.99],
  6. meat: [18, 25, 36],
  7. coffee: [15, 25, 35]
  8. }
  9. for (const key in Price) {
  10. console.log(key, Price[key])
  11. }
  12. // 以后会学习for...in/of自定义遍历方法

for…in循环

for…in循环会[属性]也遍历出来!【缺陷】 for…in是针对对象的,不要给数组用!>
for…in默认的index是字符串string!

  1. // 为listA数组添加一个a属性
  2. listA.a = 8
  3. // for...in循环会[属性]也遍历出来!【缺陷】
  4. // for...in是针对对象的,不要给数组用!
  5. // for...in默认的index是字符串string!
  6. for (const index in listA) {
  7. console.log(index, listA[index])
  8. }
  9. // for...in中用数字index的方式是 * N
  10. for (const index in listA) {
  11. if (index * 1 === 8) {
  12. console.log('i love number 8 !')
  13. } else { console.log(index, listA[index]) }
  14. }