Javascript 我如何将这串数字与范围分开?

Javascript 我如何将这串数字与范围分开?,javascript,string,Javascript,String,我有一组数字如下: var string= "1,2,3,4-8,15,17,18-21,22"; 如何将其拆分为一个数组,其形式为:[1,2,3,4,5,6,7,8,15,17,18,19,20,21,22] 更新:好的,代码马上就出来。。。试着让一个女孩站起来 var mystring= "1,2,3,4-8,15,17,18-21,22"; var array1= mystring.split(","); document.getElementById("output").innerH

我有一组数字如下:

var string= "1,2,3,4-8,15,17,18-21,22";
如何将其拆分为一个数组,其形式为:
[1,2,3,4,5,6,7,8,15,17,18,19,20,21,22]

更新:好的,代码马上就出来。。。试着让一个女孩站起来

var mystring= "1,2,3,4-8,15,17,18-21,22";

var array1= mystring.split(",");
document.getElementById("output").innerHTML=array1;
var array2 = searchStringInArray ("-", array1);
document.getElementById("output2").innerHTML=array2;


function searchStringInArray (str, strArray) {
    for (var j=0; j<strArray.length; j++) {
        if (strArray[j].match(str)) return j;
    }
    return -1;
}
var mystring=“1,2,3,4-8,15,17,18-21,22”;
var array1=mystring.split(“,”);
document.getElementById(“输出”).innerHTML=array1;
var array2=searchStringInArray(“-”,array1);
document.getElementById(“output2”).innerHTML=array2;
函数searchStringInArray(str,strArray){

对于(var j=0;j),因为我没有已知的方法来实现您最想要的,所以您可能需要编写自己的方法

我用逗号分割那个字符串,然后我在数组中迭代寻找任何包含破折号的内容,如果它包含破折号,抓住那个数组项,解析它 获取左侧,获取右侧,创建从
i=left
i
var string=“1,2,3,4-8,15,17,18-21,22”;
var arr=string.split(“,”);
var crr=[];
arr.forEach(功能(a){
brr=a.拆分(“-”);
如果(brr.length==2){
var o=parseInt(brr[0]);
var p=parseInt(brr[1]);

对于(var i=o;i,您可以先用逗号分割,然后用减号分割,并将整个数组缩减为一个新数组,其中包含一个内部循环以查找缺少的值

var string=“1,2,3,4-8,15,17,18-21,22”,
result=string.split(',).reduce(函数(r,a){
变量b=a.split('-').map(编号);
做{
r、 push(b[0]);
b[0]++;
}而(b[0]
var string=“1,2,3,4-8,15,17,18-21,22”;
var chunks=string.split(“,”);
var数=[];
for(var i=0;i对于(var j=pair[0];j您可以只替换范围:

var string=“1,2,3,4-8,15,17,18-21,22”
var regexRanges=/(\d+)-(\d+)/g;
var getRangeValues=函数(范围、开始、结束){
返回数组(end-start+1).fill(+start).map((x,i)=>x+i);
};
var result=JSON.parse('['+string.replace(regexRanges,getRangeValues)+']');

console.log(result);
你写过代码吗?你尝试了什么?什么在你的测试中不起作用?发布一些代码并解释错误,然后人们可能会插手帮助。只是你的评论和我写的完全一样:)很好的解决方案H我应该从你的答案中复制然后如果(brr.length==2)条件是什么do?@nilerafter24如果值包含
-
,则拆分数组的长度将为2。否则将为1。为什么不使用
JSON.parse
,以获得数字数组?@NinaScholz。好主意!!谢谢你解析为整数的方式。