<commit_before>---
layout: post
title: "loop-through-an-array-in-javascript"
subtitle: "js中数组循环的几种方法"
date: 2020-01-06
author: "Journee"
catalog: true
tags:
    - JS
    - array
---

循环数组，有好几种方法可以选择：

1、for循环

    var myStringArray = ["Hello","World"];
    var arrayLength = myStringArray.length;
    for (var i = 0; i < arrayLength; i++) {
        console.log(myStringArray[i]);
        //Do something
    }
    
优点：
* 任何环境都适用
* 可以使用break和continue这两种流控制语句

缺点：
* 太啰嗦
* 是个祈使句
* 容易引发[off-by-one-errors 差一错误](https://zh.wikipedia.org/zh-hans/%E5%B7%AE%E4%B8%80%E9%94%99%E8%AF%AF)

2.Array.prototype.forEach
ES5规范引入了很多有利的数组处理方法，Array.prototype.forEach是其中之一，它提供了一种简洁的遍历数组的方法。


    const array = ["one", "two", "three"]
    array.forEach(function (item, index) {
      console.log(item, index);
    });<commit_msg>标题名称改为中文；添加译文原地址<commit_after>---
layout: post
title: "js循环数组几种方法对比"
subtitle: "for\forEach\for...of\for...in"
date: 2020-01-06
author: "Journee"
catalog: true
tags:
    - JS
    - array
---

原文地址：[Loop through an array in JavaScript](https://stackoverflow.com/questions/3010840/loop-through-an-array-in-javascript?page=1&tab=votes#tab-top)

循环数组，有好几种方法可以选择：

1、for循环

    var myStringArray = ["Hello","World"];
    var arrayLength = myStringArray.length;
    for (var i = 0; i < arrayLength; i++) {
        console.log(myStringArray[i]);
        //Do something
    }
    
优点：
* 任何环境都适用
* 可以使用break和continue这两种流控制语句

缺点：
* 太啰嗦
* 是个祈使句
* 容易引发[off-by-one-errors 差一错误](https://zh.wikipedia.org/zh-hans/%E5%B7%AE%E4%B8%80%E9%94%99%E8%AF%AF)

2.Array.prototype.forEach
ES5规范引入了很多有利的数组处理方法，Array.prototype.forEach是其中之一，它提供了一种简洁的遍历数组的方法。


    const array = ["one", "two", "three"]
    array.forEach(function (item, index) {
      console.log(item, index);
    });
{'fraction_non_alphanumeric': 0.16411997736276174, 'fraction_numerical': 0.03169213355970572, 'mean_word_length': 3.702127659574468, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7386835', 'n_tokens_mistral': 876, 'n_tokens_neox': 891, 'n_words': 114}