当循环遍历一个数组时,我希望将元素推到一个新的数组中.然而,该数组仍然为空



当我运行这个循环时,它接收一个包含八个数字的数组,它循环通过并简单地将它们推送到一个名为results的全局数组。出于某种原因,当我在循环外console.log这个数组时,它会返回0[]。我希望它返回另一个数组中的八个数字。

const results = []
const validate = arr => {
for(let i = 0; i < arr.length; i++){
results.push(arr[i])
}
}
console.log(results)

这里所做的只是定义一个函数,该函数复制已传递到其中的数组的内容具有适当值的CCD_ 1。

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);

这是因为您必须运行函数验证,现在您只打印没有项目的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);

您错过了对函数的调用。

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);

如果包含原始的数字数组,并调用迭代它的函数:,代码就会工作

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)

最新更新