iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0

img

這天約好的時間已經到了,草莓卻還沒出現。

「好奇怪呀,平常草莓都很早到的呀。」熊熊說。

突然熊熊的手機響了起來。


img

「喂~我是熊熊你好」

「是熊熊嗎?我是草莓啦,我還在路上再等我一下」

「沒關係~你慢慢來」

「對了熊熊,我想問個問題~」電話另ㄧ頭的草莓說

「你說吧!」

「之前我學到了怎麼拿出陣列的元素,也知道怎麼取得物件內指定的元素,可是我總不可能一直去更改索引值啊,所以有沒有一種方式可以讓我直接搜尋?」草莓問。

「你的意思是讓程式幫你找出那筆資料對嗎?」

「對~」


img

「沒有問題!我們先來看看之前羊咩咩的範例。」

var myGoat = [
  {
    name: "味愧羊",
    age: 6,
    color: "白色"
  },
  {
    name: "太平羊",
    age: 12,
    color: "黑色"
  }
];

「這裡你會需要學習一個新東西,叫做迴圈 (loop)。」

「迴轉壽司!」

img

「完全不對啦!」


「先來看看基本的語法。」

for(var i = 0; i < 4; i++) {
  ...
}

「那個 ++ 是什麼意思啊?」

「我們從一個開始解釋好了。首先是起始條件,這裡我們使用了一個變數 i,它預設會從 0 開始,第二個是終止條件,也就是說當變數 i 等於 4 的時候就會停下,最後的 i++ 則代表變數 i 的值會持續增加ㄧ,所以也可以改寫成 i = i + 1」

「了解~」


「回過頭來看,變數裡儲存著資料源,假設我們想要找到太平羊,我們可以這樣寫。」

var myGoat = [
  {
    name: "味愧羊",
    age: 6,
    color: "白色"
  },
  {
    name: "太平羊",
    age: 12,
    color: "黑色"
  }
];

for(var i = 0; i < myGoat.length; i++) {
  if(myGoat[i]['name'] === '太平羊') {
    console.log(myGoat[i]);
  }
}

草莓看著視訊電話裡熊熊傳來的程式碼仔細閱讀著。

「所以迴圈會把我的資料全部跑過一遍,如果找到關鍵字符合的,就會把該筆資料回傳回來囉?」

「是的,所以當我們要過濾或是找出資料,迴圈都是個非常好用的工具喔!」熊熊說。

「迴圈雖然方便,但也要注意終止條件的設定,不然會不小心寫出無窮迴圈 (infinite loop) ,讓程式停不下來造成網頁崩壞喔!」熊熊補充說明著。


「是說草莓,你到底在忙什麼呀?你要到了嗎?」熊熊問。

「喔喔我在遛羊啊!我到了,你看店門口~」草莓說。

img

「原來是真的羊嗎!?你家怎麼塞得下這麼多隻羊 ...」熊熊傻眼地說。

img

明日待續~


上一篇
Day26
下一篇
Day28
系列文
StrawBeary 網頁工程三十天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言