【筆記】用JavaScript幫你選擇午餐要吃什麼

更新於 發佈於 閱讀時間約 9 分鐘
利用JavaScript的Math.random( )函數創造一個隨機值,並透過隨機值的結果印出相對應的文字,就可以讓程式幫你選午餐要吃什麼了,這個不是一個完整的東西,它有很多可以增加的地方

身為一名普通的上班族,每天上班最煩惱的就是要想午餐要吃什麼了,這時我們可以透過程式來決定我們要吃什麼,得先想一下頁面要有什麼內容:

1.有個按鈕,點了之後可以顯示平常吃的午餐店名或是位置,這個是隨機骰出的

2.既然是吃午餐,那就塞一張食物圖吧

3.顯示現在是幾點


想好要做啥以後,首先我們要先創建一個html文檔,聲明文檔類型(HTML5)、頁面語言(繁體中文)以及頁面解析字符編碼(UTF-8),並設定CSS的樣式,我就先粗略設定一下讓它看起來可以用不會歪一邊就行了

<!DOCTYPE html>

<html lang="zh-TW">

<head>
<meta charset="UTF-8">
<title>我不知道今天要吃什麼所以只好開這個</title>
<style>

body{
background-color: #97e5e7;/*淺藍色*/
border-style:double;
margin: 50px auto;
max-width: 800px;
justify-content: center;/*水平置中*/
align-items: center; /*垂直置中*/
}

h1{
color:chocolate
}

html, body {
-webkit-text-size-adjust: none;
-moz-text-size-adjust: none;
-ms-text-size-adjust: none;
text-size-adjust: none;
}

</style>
</head>


接著是body的部分,食物的圖片可以先上傳到縮網址在從縮網址複製下來,或是像我這樣,直接把圖片貼在github上面,然後複製上面顯示的網址

<body onload="current_time()">

<!-- 標題 -->
<div style="text-align:center;padding: 0px 0px 30px">
<h1>今天午餐要吃什麼</h1>
</div>

<!-- 食物圖片 -->
<div style="text-align:center">
<img src="https://user-images.githubusercontent.com/110076175/184523767-5afba99d-eca5-41a3-b291-a16f68c2c4ea.jpg">
</div>

<br>
<!-- 時間 -->
<div style="text-align:center">
<div id="current"></div>
</div>

<br>
<!-- 按鈕 -->
<div style="text-align:center;">
<button onclick="myFunction()">肚子好餓 點我</button>
</div>

<!-- 按鈕印出來的結果 -->
<div style="text-align:center;color:rgb(255, 0, 242)">
<p id="demo"></p>
</div>
<br>
<ul> &emsp;</ul>

</body>
</html>


最後是js,總共要處理兩個,一個是時間的,一個是隨機值的

    <script>
function current_time(){
NowDate=new Date();
hour=NowDate.getHours();
min=NowDate.getMinutes();
sec=NowDate.getSeconds();
document.getElementById("current").innerHTML = "現在時間: "+hour+"點 "+min+"分 "+sec+"秒";
setTimeout("current_time()",1000);
}
</script>

function的名稱為 current_time(),同時body onload 也調用這個函數,這個函數獲取了現在的日期、時間,並相對應的印出來


接著處理隨機值

 <script>

function myFunction(){
var x=""
var number=Math.floor((Math.random()*7)+1);

console.log(number)

if (number==1) {
x="西湖市場裡面"
}

if (number==2) {
x="西湖蚊子咖哩飯"
}

if (number==3) {
x="夢食代"
}

if (number==4) {
x="消防局對面早餐店"
}

if (number==5) {
x="椒麻雞大王"
}

if (number==6) {
x="肯德基對面的健康餐"
}

if (number==7) {
x="今日咖哩"
}
document.getElementById("demo").innerHTML =x
}
</script>

宣告一個變數 x,它是一個空字串,用來顯示我們的午餐要去哪吃

宣告一個變數number,它是用來產生隨機值的

這個會有幾層的思考路徑:

Math.random()函數會生成介於(包含)0到(不包含)1之間的隨機小數,然後根據你要選擇幾個午餐,乘上相對應的數

我要7選1,所以乘以7,這樣它就會顯示(包含)0到(不包含)7之間的隨機小數

利用Math.floor()函數將這個浮點數往下取整數,也就是我們會得到(包含)0到(不包含)7之間的整數

最後,+1讓整數範圍偏移,變成是(包含)1到(不包含)8之間的整數,所以我們會隨機骰出1-7,這時候再將1-7會印出來什麼數值分別顯示出來就可以了


底下的if就是當number骰出什麼數字,x就顯示什麼文字,這樣就可以用程式決定午餐要吃什麼了

console.log(number) 是把隨機值印出來來驗證是不是1-7,我們可以打開html檔案後按F12,在console(控制臺)看到

raw-image


結果:

raw-image

點了以後

raw-image

這個會有一些東西可以再優化的,比如:

外觀XDD

我點了以後外框會往下一格

可以做一個我點食物名稱後,外開一個google瀏覽器地圖,並預設搜尋食物名稱

放在手機上看實在不怎麼好看,做個RWD


不用JavaScript改用Python也不是不行,只是JavaScript用在客戶端的互動(俗稱前端),Python通常用在服務器端的執行(俗稱後端),要用Python的話就得寫一支API,把它部署在可以放代碼的地方(比如GitHub),但那又是另一個故事了

avatar-img
21會員
18內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
冬霞的沙龍 的其他內容
sort reverse count index copy len min max sum any all
list跟tuple 應用場景跟常用函式:append extend insert remove clear pop del
浮點數的常見場景,但怎麼好像變成拋物線當主角了
以一個雜魚測試工程師的角度來看int應用場景
完成上一篇沒完成的MAX跟BitoPro API呼叫
sort reverse count index copy len min max sum any all
list跟tuple 應用場景跟常用函式:append extend insert remove clear pop del
浮點數的常見場景,但怎麼好像變成拋物線當主角了
以一個雜魚測試工程師的角度來看int應用場景
完成上一篇沒完成的MAX跟BitoPro API呼叫
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
吃早餐在台灣是一股很特別的風氣, 琳瑯滿目的早餐店隨處可見 早餐的品項更是多到讓人難以抉擇~ 今天,我們一起將早餐的所有單字句型一次打包帶走吧~
Thumbnail
這篇文章分享作者在早餐店意外的取餐經驗,並提供了三位店員的處理方式,讓讀者猜測誰是老闆。文章中還分享了作者對店家經營方式的省思與學習。
Thumbnail
從主動的去選擇要吃什麼出發,這是一個很容易發想的起點。很多人直覺會回應:我怎麼不能選擇了?去哪一間餐廳吃飯或是外送哪一份餐點來吃,不是就是一種選擇嗎?但即使是如此,仍跳脫不了餐廳已經準備好的固定餐點。就月光的想法,是那種自己煮來吃的,才是主動掌控自己要吃什麼的人。不過,月光的作法,也只
Thumbnail
當選擇成為一種奢侈,晚餐的決定就像是一場每日的心理戲碼。在這個美食無處不在的世界裡,每一餐都是一次機會,一次冒險,一次對味蕾的承諾。
Thumbnail
日期網友詢問一個多條件動態下拉式選單的設計,如下圖。 資料中有各種年齡層的目標對象可食用食物的資料分析,其中1代表該年齡層可以吃的食物、0代表不能吃的食物。 原PO想要根據這個資料來源製作一個下拉選單,當選擇該年齡層的目標對象時,下拉式選單分別於主食、肉類、葉菜類顯示可食用的食物名稱(原始資
Thumbnail
中午自己去買的自助餐可以自己選擇也不錯~ 不過我也不是一直都吃啦,大部分還是自助餐或是一般超市量販店的現做便當 雖說超商的便當讓我有很深的印象(主要是因為有一堆聯名或是一段時間後會有的推陳出新) 但我說真的最
Thumbnail
接續上一篇文章,而月光想強調的是,買一個便當的錢通常會比兩顆水煮蛋要貴,是因為量少的緣故。這只是多一個思考方向,以高營養的標準來重新選擇食物,就會有不同的發現。不會再以: 這個男生吃不飽! 吃了這個馬上就會餓! 不知道要吃什麼只好吃這個! 沒時間了,就選擇這個來吃吧!    
Thumbnail
三餐的重要性,各有表述;三餐如何規劃,各有需求與方便性。
Thumbnail
     即使安排了各種肚子餓的時候可以吃的食物,但對於晚餐後,應該算宵夜嗎?的安排,還是沒有佈局到。原本,晚餐後是不應該吃東西的,這是基本應該做到的事。但如果還是想吃呢?總不能來一碗泡麵吧?還是要有選擇性的,這可能是維持體重紀律的鬆動,還是一個全新的嘗試呢?這時會想要嘗試一下氣泡水,選擇零卡的類型
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
吃早餐在台灣是一股很特別的風氣, 琳瑯滿目的早餐店隨處可見 早餐的品項更是多到讓人難以抉擇~ 今天,我們一起將早餐的所有單字句型一次打包帶走吧~
Thumbnail
這篇文章分享作者在早餐店意外的取餐經驗,並提供了三位店員的處理方式,讓讀者猜測誰是老闆。文章中還分享了作者對店家經營方式的省思與學習。
Thumbnail
從主動的去選擇要吃什麼出發,這是一個很容易發想的起點。很多人直覺會回應:我怎麼不能選擇了?去哪一間餐廳吃飯或是外送哪一份餐點來吃,不是就是一種選擇嗎?但即使是如此,仍跳脫不了餐廳已經準備好的固定餐點。就月光的想法,是那種自己煮來吃的,才是主動掌控自己要吃什麼的人。不過,月光的作法,也只
Thumbnail
當選擇成為一種奢侈,晚餐的決定就像是一場每日的心理戲碼。在這個美食無處不在的世界裡,每一餐都是一次機會,一次冒險,一次對味蕾的承諾。
Thumbnail
日期網友詢問一個多條件動態下拉式選單的設計,如下圖。 資料中有各種年齡層的目標對象可食用食物的資料分析,其中1代表該年齡層可以吃的食物、0代表不能吃的食物。 原PO想要根據這個資料來源製作一個下拉選單,當選擇該年齡層的目標對象時,下拉式選單分別於主食、肉類、葉菜類顯示可食用的食物名稱(原始資
Thumbnail
中午自己去買的自助餐可以自己選擇也不錯~ 不過我也不是一直都吃啦,大部分還是自助餐或是一般超市量販店的現做便當 雖說超商的便當讓我有很深的印象(主要是因為有一堆聯名或是一段時間後會有的推陳出新) 但我說真的最
Thumbnail
接續上一篇文章,而月光想強調的是,買一個便當的錢通常會比兩顆水煮蛋要貴,是因為量少的緣故。這只是多一個思考方向,以高營養的標準來重新選擇食物,就會有不同的發現。不會再以: 這個男生吃不飽! 吃了這個馬上就會餓! 不知道要吃什麼只好吃這個! 沒時間了,就選擇這個來吃吧!    
Thumbnail
三餐的重要性,各有表述;三餐如何規劃,各有需求與方便性。
Thumbnail
     即使安排了各種肚子餓的時候可以吃的食物,但對於晚餐後,應該算宵夜嗎?的安排,還是沒有佈局到。原本,晚餐後是不應該吃東西的,這是基本應該做到的事。但如果還是想吃呢?總不能來一碗泡麵吧?還是要有選擇性的,這可能是維持體重紀律的鬆動,還是一個全新的嘗試呢?這時會想要嘗試一下氣泡水,選擇零卡的類型