作者hugct (cchug)
看板Ajax
标题[问题] 请教if叙述中的boolean判断
时间Mon Mar 11 01:20:30 2019
目前在写一个codewar上面的题目,8kyu的what's up next.
由於不会解便看解答,但连解答都看不懂。
题目说他给定一组序列,然後求得指定字符的下一位。
例如:[1,2,3,4,5,6],指定5,求下一位。
解答中有人的写法为
function
nextitem (
xs,
item){
var
found = false
for (var
x of
xs){
if (
found) return
x ;
if (x == item)
found = true ;
}
return undefined
}
这里不懂为何在if的叙述中
found的运作,
没有条件,只有一个变数
found,
if语句是怎麽判断的?为甚麽只给变数就可以运作?
然後又是怎麽作结束判定的?
还请各位高手解答。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.27.77.111
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ajax/M.1552238432.A.41A.html
1F:推 s25g5d4: 所有的判断是最终都会回归布林真假值,found 本来就是 03/11 02:00
2F:→ s25g5d4: boolean 所以可以判断啊 03/11 02:00
3F:→ s25g5d4: 判断式* 03/11 02:00
4F:→ hugct: 所以在found等於true前都会一直run下去是吗? 03/11 02:23
5F:推 acer1832a: 你可以去MDN查一下 for...of的用法,跟for...in差不多 03/11 11:29
6F:→ acer1832a: 这段程式简单的设就是迭代xs中的所有元素,若x==item 03/11 11:31
7F:→ acer1832a: 就回传下一个元素,如果没有,就回传undefined 03/11 11:33
8F:→ acer1832a: 举例来说,如果第5个元素等於item,就将found的值设为 03/11 11:34
9F:→ acer1832a: true,然後再迭代xs中的下一个元素,这时因为found的值 03/11 11:35
10F:→ acer1832a: 是true,所以就执行return x 03/11 11:36
11F:→ y3k: 建议你喝杯咖啡再想一下.... 03/11 17:30
12F:→ awwseed: 可以写个简易 html 用 chrome debug 逐行执行看也不错~ 03/11 17:59
13F:→ hugct: 感谢各位高手的解释与建议 03/11 20:33
14F:→ lazarus1121: 顺便查false family,不然你会发现if能塞的东西可多 03/14 23:39
15F:→ lazarus1121: 了 03/14 23:39
16F:推 ou9810: 所有东西都可以丢进if吧? 03/22 17:23