求解JS语句为何报错级解决方案?

在文本框添加点击事件数据以下js
语句1
var a =this.getValue().split(",");
var c = splits(a);
    function splits() {
        var resarr = [];
        for (var i = 0, l = arguments.length; i < l; i++) {
            (function newres(arg) {
                var newarr = arg.split('-');
                resarr.push(newarr[0]);
                return (+newarr[0] < +newarr[1]) ? (newres(+newarr[0] + 1 + '-' + newarr[1])) : resarr;
            })(arguments);
        }
        return resarr;
    }
this.setValue(c.join());
这个语句会报

我把语句改成
语句二
var a =this.getValue();
var c = splits(a);
function splits() {
var resarr = [];
for (var i = 0, l = arguments.length; i < l; i++) {
(function newres(arg) {
var newarr = arg.split('-');
resarr.push(newarr[0]);
return (+newarr[0] < +newarr[1]) ? (newres(+newarr[0] + 1 + '-' + newarr[1])) : resarr;
})(arguments);
}
return resarr;
}
this.setValue(c.join());
这个语句又不报错
是什么回事呢
我的目的是将a变成数组
输入1-5,他会变成1,2,3,4,5,输入1,3-6变成1,3,4,5,6
语句2是可以运行的,但是我输入1,3-6运行的时候就变成了1,3


各位看官以为完了吗---------------------我是妖媚的分割线


然后我进行了测试;
语句3
var c = splits('5','7-11','13-21','25');
function splits() {
var resarr = [];
for (var i = 0, l = arguments.length; i < l; i++) {
(function newres(arg) {
var newarr = arg.split('-');
resarr.push(newarr[0]);
return (+newarr[0] < +newarr[1]) ? (newres(+newarr[0] + 1 + '-' + newarr[1])) : resarr;
})(arguments);
}
return resarr;
}
this.setValue(c.join());
运行成功了,为5,7,8,9,10,11,13,14,15,16,17,18,19,20,21,25
我怀疑是var c = splits('5','7-11','13-21','25');里面的是数组,所以我语句2的运行跟预计有出入,所以我想将a转换成数组
到底出错在哪呢,如何解决



FineReportaustin1122 发布于 2016-11-18 15:47
悬赏:2 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
austin1122发布于2016-11-18 15:47(编辑于 2023-9-6 09:34)
555
  • 0关注人数
  • 422浏览人数
  • 最后回答于:2016-11-18 15:47
    活动推荐 更多
    热门课程 更多
    返回顶部