[問題] 請教if敘述中的boolean判斷

看板Ajax作者 (cchug)時間5年前 (2019/03/11 01:20), 編輯推噓3(3013)
留言16則, 7人參與, 5年前最新討論串1/1
目前在寫一個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://www.ptt.cc/bbs/Ajax/M.1552238432.A.41A.html

03/11 02:00, 5年前 , 1F
所有的判斷是最終都會回歸布林真假值,found 本來就是
03/11 02:00, 1F

03/11 02:00, 5年前 , 2F
boolean 所以可以判斷啊
03/11 02:00, 2F

03/11 02:00, 5年前 , 3F
判斷式*
03/11 02:00, 3F

03/11 02:23, 5年前 , 4F
所以在found等於true前都會一直run下去是嗎?
03/11 02:23, 4F

03/11 11:29, 5年前 , 5F
你可以去MDN查一下 for...of的用法,跟for...in差不多
03/11 11:29, 5F

03/11 11:31, 5年前 , 6F
這段程式簡單的設就是迭代xs中的所有元素,若x==item
03/11 11:31, 6F

03/11 11:33, 5年前 , 7F
就回傳下一個元素,如果沒有,就回傳undefined
03/11 11:33, 7F

03/11 11:34, 5年前 , 8F
舉例來說,如果第5個元素等於item,就將found的值設為
03/11 11:34, 8F

03/11 11:35, 5年前 , 9F
true,然後再迭代xs中的下一個元素,這時因為found的值
03/11 11:35, 9F

03/11 11:36, 5年前 , 10F
是true,所以就執行return x
03/11 11:36, 10F

03/11 17:30, 5年前 , 11F
建議你喝杯咖啡再想一下....
03/11 17:30, 11F

03/11 17:59, 5年前 , 12F
可以寫個簡易 html 用 chrome debug 逐行執行看也不錯~
03/11 17:59, 12F

03/11 20:33, 5年前 , 13F
感謝各位高手的解釋與建議
03/11 20:33, 13F

03/14 23:39, 5年前 , 14F
順便查false family,不然你會發現if能塞的東西可多
03/14 23:39, 14F

03/14 23:39, 5年前 , 15F
03/14 23:39, 15F

03/22 17:23, 5年前 , 16F
所有東西都可以丟進if吧?
03/22 17:23, 16F
文章代碼(AID): #1SXKTWGQ (Ajax)