看板 Ajax 關於我們 聯絡資訊
目前在寫一個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
s25g5d4: 所有的判斷是最終都會回歸布林真假值,found 本來就是 03/11 02:00
s25g5d4: boolean 所以可以判斷啊 03/11 02:00
s25g5d4: 判斷式* 03/11 02:00
hugct: 所以在found等於true前都會一直run下去是嗎? 03/11 02:23
acer1832a: 你可以去MDN查一下 for...of的用法,跟for...in差不多 03/11 11:29
acer1832a: 這段程式簡單的設就是迭代xs中的所有元素,若x==item 03/11 11:31
acer1832a: 就回傳下一個元素,如果沒有,就回傳undefined 03/11 11:33
acer1832a: 舉例來說,如果第5個元素等於item,就將found的值設為 03/11 11:34
acer1832a: true,然後再迭代xs中的下一個元素,這時因為found的值 03/11 11:35
acer1832a: 是true,所以就執行return x 03/11 11:36
y3k: 建議你喝杯咖啡再想一下.... 03/11 17:30
awwseed: 可以寫個簡易 html 用 chrome debug 逐行執行看也不錯~ 03/11 17:59
hugct: 感謝各位高手的解釋與建議 03/11 20:33
lazarus1121: 順便查false family,不然你會發現if能塞的東西可多 03/14 23:39
lazarus1121: 了 03/14 23:39
ou9810: 所有東西都可以丟進if吧? 03/22 17:23