我需要区分数组中的范围,并扩展它。我正在使用 JavaScript。
例如:
var arr = ["1", "6", "4", "5", "9-11", "13-15"];
所需的输出是
var output =["1", "6", "4", "5", "9", "10", "11", "13", "14", "15"];
我目前有扩展一定范围的脚本。我很难确定数组中的范围:
var range = "1-6";
range = str.split("-");
start = parseInt(range[0]);
end = parseInt(range[1]);
var rangeArray = [];
for(var i = start; i <= end; i++){
rangeArray.push(i);
}
console.log(rangeArray);
最佳答案
我更新了您的代码以制作一个返回数组中所有数字的 splitRanges
函数,并遍历初始数组并使用此函数在每次迭代中提取所有范围:
var arr = ["1", "6", "4", "5", "9-11", "13-15"]
function splitRanges(rangeStr) {
var range = rangeStr.split("-");
var start = parseInt(range[0]);
var end = parseInt(range[1]);
var rangeArray = [];
for (var i = start; i <= end; i++) {
rangeArray.push(""+i+"");
}
return rangeArray;
}
var output = [];
arr.forEach(function(r){
if(r.indexOf("-")>-1){
output = output.concat(splitRanges(r));
}else
output.push(r);
});
console.log(output);
解释:
此代码遍历初始数组,并在每次迭代中检查它是否是一个范围,将此值传递给 splitRanges
函数,并将结果concat
否则传递给我们的输出数组只需push
output
数组中的值。
关于javascript - 区分数组中的范围,并扩展它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46600825/