關於迴圈遍歷獲取資料
阿新 • • 發佈:2020-10-27
一、for迴圈
var list=[]; for(var i in data){ list.push( data[i].num ) }
二、forEach
具體介紹:https://www.runoob.com/jsref/jsref-foreach.html
eg:
<p>乘以: <input type="number" id="multiplyWith" value="10"></p> <button onclick="numbers.forEach(myFunction)">點我</button> <p>計算後的值: <span id="demo"></span></p> <script> varnumbers = [65, 44, 12, 4]; /** 引數 描述 ** currentValue 必需。當前元素 ** index 可選。當前元素的索引值。 ** arr 可選。當前元素所屬的陣列物件。 **/ function myFunction(item,index,arr) { arr[index] = item * document.getElementById("multiplyWith").value; demo.innerHTML = numbers; } </script>
***注意:
forEach(): 沒有返回值 ,本質上等同於 for 迴圈,對每一項執行 function 函式。即map是返回一個新陣列,原陣列不變,forEach 是改變原陣列。
不支援 continue,用 return false 或 return true 代替。
不支援 break,用 try catch/every/some 代替:
//實現 continue: var arr = [1,2,3,4,5]; var num = 3; arr.some(function(v){ if(v == num) { return; // } console.log(v); }); //實現 break:var arr = [1,2,3,4,5]; var num = 3; arr.every(function(v){ if(v == num) { return false; }else{ console.log(v); return true; } });
三、判斷時用switch
switch case 如果迴圈就是break 如果是判斷就是return false;
// 如果迴圈 跳出用break switch(num){ case 1: xxxx break; case 2:xxxx break; default: break; } //是判斷就用 return false; switch(num){ case 1: xxxx return false; case 2:xxxx return false; default: return false; }