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

Posted

技术标签:

【中文标题】如何获取数组中的每个第n个数字?不行【英文标题】:How to get every nth number in array? Not work 【发布时间】:2020-05-20 08:16:08 【问题描述】:

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

前三个数字: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>

【问题讨论】:

【参考方案1】:

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

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

从数组中取出三个项目作为第一部分,另一个作为第四部分。

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;
&lt;div id="text"&gt;1, 1, 1, 2, 3, 3, 3, 4&lt;/div&gt;

【讨论】:

谢谢。这对您来说既快速又简单。我想要实现的是将一个值提取到渐变颜色的每个变量中。我前一天问了这个问题,但我在互联网上的任何地方都没有找到。目标是动态更改已经存在的渐变。这是问题的链接,如果您能提供帮助,我将不胜感激。链接:***.com/questions/61887798/…【参考方案2】:

我会为此使用 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>

【讨论】:

对于这个简单的问题来说,包含整个库可能是矫枉过正。一个简单的 if 对索引取模应该可以解决问题?

以上是关于如何获取数组中的每个第n个数字?不行的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Java 中的未排序数组中快速获取前 N 个出现项?

Swift:如何在 plist 中获取第一个数组字符串?

MongoDB获取数组的每个第N个元素

如何从 List<T> 中获取每个第 n 个项目?

将数字从标准输入获取到 C 中的数组

如何使用按位运算获取整数的第N位?