繁体   English   中英

在遍历数组时,我希望将元素推送到一个新数组。 然而,该数组仍然为空

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM