作者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/m.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