[英]When looping through an array I wish to push the elements to a new array. That array however remains empty
當我運行這個循環時,它接受一個包含八個數字的數組,它循環遍歷並將它們簡單地推送到一個名為 results 的全局數組。 出於某種原因,當我在循環外 console.log 這個數組時,它返回 0 []。 我希望它從另一個數組返回八個數字。
const results = [] const validate = arr => { for(let i = 0; i < arr.length; i++){ results.push(arr[i]) } } console.log(results)
那是因為您必須運行function驗證,現在您只打印沒有任何項目的results[]
。
validate(arr);
const results = [] const arr = [1, 2, 3, 4, 5, 6, 7, 8]; const validate = arr => { for (let i = 0; i < arr.length; i++) { results.push(arr[i]) } } validate(arr); console.log(results);
但是如果你想制作一個副本,你可以使用:
const arr = [1, 2, 3, 4, 5, 6, 7, 8]; const results = [...arr]; console.log(results);
您在這里所做的只是定義一個 function,它復制已傳遞給它的數組的內容。 您需要使用適當的值調用 function validate
。
const results = [] const validate = arr => { for(let i = 0; i < arr.length; i++){ results.push(arr[i]) } } validate([1,2,3,4,5,6,7,8]); console.log(results);
您錯過了撥打 function 的電話。
const arr = [1, 2, 3, 4, 5, 6, 7, 8]; const result = []; arr.map((num) => result.push(num)); console.log(result);
const results = [] const validate = (arr) => { console.log(arr) arr.forEach((value)=>{ results.push(value) }); } validate([1,2,3,4,5,6,7,8]); console.log(results);
如果您包含原始數字數組並調用迭代它的 function,您的代碼將起作用:
let arr = [1,2,3,4,5,6,7,8]; let results = []; function validate() { for(let i = 0; i < arr.length; i++){ results.push(arr[i]) } } validate(); console.log(results)
但是, Array.prototype.map()
方法被設計用來做這種事情:
let arr = [2,4,6,8]; let results = arr.map(function(element){ return element; // Returns item to resulting array }); console.log(results)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.