为了账号安全,请及时绑定邮箱和手机立即绑定

这种写法为什么不能获取全部从字符串中数值

var scors=new Array();  var sum=0;  document.write(scoreStr.length);  for(i=0;i<(scoreStr.length*10/6);i++){      scors[i]=scoreStr.substr(3,2);      scoreStr=scoreStr.substring(6,scoreStr.length-1)      document.write(scors[i]+"<br/>");      sum=sum+parseInt(scors[i]);


正在回答

3 回答

https://img1.sycdn.imooc.com//5b71980a00013b7d04210257.jpg

....

https://img1.sycdn.imooc.com//5b7198170001a8ce02920239.jpg

为什么要scoreStr.length*10/6,有很多步骤跟我的思维完全不一样,我测试了以下你的程序,感觉怪怪的,尤其是循环长度的问题

正常思维:截取每个数字,转化然后加起来

问下你可以注释一下你的代码?让我好理解下

var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var scors = new Array();
var sum = 0;
document.write(scoreStr.length + "<br/>");
//说明有十组数,十个成绩
var len = (scoreStr.length+1) / 6;
var num = 0;
for (var i = 0; i < len; i++) {
    //截取每个成绩,转化加起来
    sum += parseInt(scoreStr.substr(3+num, 2));
    //跟随规律,每次都跳转到数字的那个下标
   num += 6;
}
//从数组中将成绩撮出来,然后求和取整,并输出。
document.write(weekDay[myDate.getDay()] + "--班级总分为:" + sum);


1 回复 有任何疑惑可以回复我~
#1

Adongy 提问者

我最开始写的时候就是scoreStr.length+1) / 6,但是我发现不能完全输出了所以结果,试着加倍长度,发现倍数越多输出的结果也就越多,当我试着加到一定倍数的时候,结果就不再多了,实际上还有几个不能输出,加再多倍数都没有用
2018-08-13 回复 有任何疑惑可以回复我~
#2

万般浮云 回复 Adongy 提问者

不能输出结果应该是某一步错了(有些时候的确难找,断点找问题),你用用我这个看,应该是可以的
2018-08-14 回复 有任何疑惑可以回复我~
#3

Adongy 提问者 回复 万般浮云

阿里嘎多
2018-08-14 回复 有任何疑惑可以回复我~

给个参考:

 //成绩是一长窜的字符串不好处理,找规律后分割放到数组里更好操作哦

  var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";

 

  var ss=scoreStr.split(";");

  var ss2=new Array();

  var sum=0;

  // document.write(ss);

for(var i in ss){

   

    ss2[i]=parseInt(ss[i].substr(3));

    sum=sum+ss2[i];

}

  //从数组中将成绩撮出来,然后求和取整,并输出。

  

document.write("班级总分为:"+parseInt(sum/10));


0 回复 有任何疑惑可以回复我~

思维不一样:scoreStr.length*10/6;给个参考:

var scoreStr = "小明:87;小花:81;小红:97;小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76";
var scoreArray = scoreStr.split(";");
var sum = 0;
for (var x in scoreArray) {
    sum += parseInt(scoreArray[x].substr((scoreArray[x].indexOf(":") + 1), 2));
}
//从数组中将成绩撮出来,然后求和取整,并输出。
document.write(weekDay[myDate.getDay()] + "--班级总分为:" + sum);


0 回复 有任何疑惑可以回复我~
#1

Adongy 提问者

我知道这种方法,还是很谢谢你的。我这种写法可以提出出来部分成绩,但是还剩几个就提取不出来了。请教一下老师如何改进我这种写法?
2018-08-13 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这种写法为什么不能获取全部从字符串中数值

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信