如何获取数组中的第 n 个数字?不行

How to get every nth number in array? Not work

我需要将前三个数字分开,然后将第四个数字“分开”。 最后,代码应如下所示:

前三位:1,1,1第四位:2

前三位:3,3,3第四位:4

var numb = document.getElementById("text").innerHTML;
var numb, text, fLen, i;
fLen = numb.length;

text = for (i = 0; i < fLen; i++) {
  text += "the first three numbers:" + numb[i] + "fourth number:"+ numb[i] +"<br>";
  }

document.getElementById("text").innerHTML = text;

<div id="text">1, 1, 1, 2, 3, 3, 3, 4</div>

您可以使用不同的名称作为 html 元素的 id,因为浏览器将此名称作为 htis 元素的变量。这个用起来不靠谱。

获取字符串并用逗号分隔它,并可能跟随白色 space 并迭代,只要索引小于数组的长度。

里面取数组中的三项作为第一部分,另一项作为第四部分。

var html = document.getElementById("text").innerHTML,
    values = html.split(/,\s*/),
    result = '',
    i = 0;

while (i < values.length) {
    result += "the first three numbers:" + values.slice(i, i += 3).join(', ');
    result += " fourth number: "+ values[i++] + "<br>";
}

document.getElementById("text").innerHTML = result;
<div id="text">1, 1, 1, 2, 3, 3, 3, 4</div>

我会为此使用 lodash。

已编辑为无需 lodash 即可完成。

<html>
    <div id="text">1, 1, 1, 2, 3, 3, 3, 4</div>
</html>

<script>
    var numb = document.getElementById("text").innerHTML.split(/,\s*/);
    console.log(numb)
    var chunk_array = []
    var i,j,temparray,chunk = 4;
    for (i=0,j=numb.length; i<j; i+=chunk) {
            temparray = numb.slice(i,i+chunk);
            chunk_array.push(temparray)
    }
    console.log(chunk_array)
    result =''
    chunk_array.forEach(element => result += "the first three numbers:" + element.slice(0,2).join(', ') + " fourth element: " + element[3] + "<br/>")
    console.log(result)
    document.getElementById("text").innerHTML = result;
</script>