老师,如何获取循环里面的值

老师,如何获取循环里面的值

var str = '1.js 2.js 3.js';

var pattern = /js/g;

var total =0,

result,

match = '';


while((result = pattern.exec(str))!=null){

total++;

match+= '第'+total+'个匹配到的是:'+result[0]+',它的位置是:'+result.index+'\n';

}

match+='共找到'+total+'处匹配\n';

console.log(str);

console.log(match);

console.log(result);

老师,在循环外面打印result值是null,如何获取循环里面的result的值

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,关于同学的疑问,解答如下:

1、首先定义了一个变量result,定义时没有赋值。

2、在循环时给变量result进行赋值,

http://img1.sycdn.imooc.com//climg/5de0c19f0914198006530073.jpg

exec()返回一个数组,其中存放匹配的结果,此数组索引为0 的是与正则表达式相匹配的文本,在本题中,result[0]就是js。

同学可以打印下:

http://img1.sycdn.imooc.com//climg/5de0c28f09ef0ccf12570172.jpg

控制台:

http://img1.sycdn.imooc.com//climg/5de0c2ad09267c2305820162.jpg

同学可以测试下。

如果还有其他疑问,建议在问答区重新提问,便于后期查找总结

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

好帮手慕夭夭 2019-11-27 17:25:24

同学你好,这是因为如下判断中,当result=null的时候才会跳出循环。所以执行后面的 console.log时输出null。

http://img1.sycdn.imooc.com//climg/5dde3e780916a71705010081.jpg

如果result输出的不是null,则一直满足循环条件,循环不会跳出,也无法执行后面的 console.log。所以即想要满足等于null的时候跳出,又想要在跳出循环的时候输出的值不是null,这就矛盾了。

想要输出可以放在循环里面,每一次循环的时候,输出当前匹配到的值:

http://img1.sycdn.imooc.com//climg/5dde409f0912a15508330171.jpg

如果同学想要把几次匹配的结果放在一起输出。定义一个数组,把匹配到的值依次添加到数组中。最后输出:

http://img1.sycdn.imooc.com//climg/5dde40ee098ba15a08200485.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕盖茨9092533 #1
    老师,还有一点不明白,result并没有定义成数组形式,为什么可以直接用result[0]? 然后每次循环都用result[0]是因为,字符串str = '1.js 2.js 3.js';获取到第一个js,因为三个都是js,用第一个js表示后面两个,所以统一用了result[0],这样理解对吗
    2019-11-29 09:48:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师