如何获取数组中的每个第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;
<div id="text">1, 1, 1, 2, 3, 3, 3, 4</div>
【讨论】:
谢谢。这对您来说既快速又简单。我想要实现的是将一个值提取到渐变颜色的每个变量中。我前一天问了这个问题,但我在互联网上的任何地方都没有找到。目标是动态更改已经存在的渐变。这是问题的链接,如果您能提供帮助,我将不胜感激。链接:***.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个数字?不行的主要内容,如果未能解决你的问题,请参考以下文章