iT邦幫忙

2022 iThome 鐵人賽

DAY 6
0
自我挑戰組

JS 基礎學習及解題訓練系列 第 6

基本JavaScript 迴圈(Loop)- Training JS #12: loop statement --for..in and for..of

  • 分享至 

  • xImage
  •  

今天的題目主要是練習for..in and for..of,什麼是for..in and for..of呢?這兩個又有什麼差別呢?
我一開始也不懂,查了網路上好幾篇文章,大概看懂了,也就是說for..in and for..of是用在遍歷陣列或者物件資料的,而JavaScript有四種迴圈方式:
for (let i = 0; i < arr.length; ++i)
arr.forEach((v, i) => { /* ... */ })
for (let i in arr)
for (const v of arr)
上面兩種在前面兩個章節有講解過,這邊就不再贅述,那for..in and for..of如何分別,如何使用呢?
建議可以參考下面幾篇文章,有助於理解喔!

  1. JS-for...in與for...of的差別
  2. JavaScript中for of和for in的差別
  3. 【JavaScript】甚麼時候該用 for…in,甚麼時候該用 for…of
  4. JavaScript 的 4 種陣列遍歷方法: for VS forEach() VS for/in VS for/of

接下來進入我們今天的題目:

Task
Coding in function giveMeFive, function accept 1 parameter:obj, it's an object.

You need to the traverse the obj, if the length of the object key equals to 5, then push the key value to the array (you need to define the array by yourself, this time I won't help you). Additionally push the value to the array as well, if the length of the value is equal to 5.

Return the five after works finished.

You should use for..in in your code, otherwise, your solution may not pass this kata. Don't learn bad habits from those lazy guys ;-)

也就是說當我物件裡面的key長度為5的話,我就把值回傳到我設定的陣列中,以下是我的解法:

function giveMeFive(obj){
  let arr= [];
  for(var key in obj){
    if(key.length == 5) arr.push(key);
    if(obj[key].length == 5) arr.push(obj[key]);
  }
  return arr
}

上一篇
基本JavaScript 迴圈(Loop)- Training JS #11: loop statement --break,continue
下一篇
基本JavaScript Number properties - Training JS #13: Number object and its properties
系列文
JS 基礎學習及解題訓練9
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言