function square(arr) {
var result=[].concat(arr);
result.forEach(function(i){
i=i*i;
console.log(i);
})
return result;
}
var arr=[1,2,3,4];
console.log(square(arr))
任务是对数组中的所有元素进行平方,现在我的输出是原始数组。我想知道为什么。
P.S。第一个console.log给了我output1; 4; 9; 16。 第二个console.log输出[1,2,3,4]
答案 0 :(得分:2)
您可以为单个值定义一个方形函数作为Array#map
的回调以获取平方数组。
function square(v) {
return v * v;
}
var array = [1, 2, 3, 4];
console.log(array.map(square));
答案 1 :(得分:1)
forEach
正在迭代数组,但它没有返回anyvvalue.Use map函数,它将返回一个更新结果的新数组
function square(arr) {
return arr.map(function(i) {
return i * i;
})
}
var arr = [1, 2, 3, 4];
console.log(square(arr))
如果您仍打算使用forEach
推送数组中的更新值并返回该数组
答案 2 :(得分:0)
将该值重新分配给i
不会更新原始数组。
您不需要连接该数组,只需将该数组初始化为空[]
。
function square(arr) {
var result = [];
arr.forEach(function(i) {
i = i * i;
result.push(i);
});
return result;
}
var arr = [1, 2, 3, 4];
console.log(square(arr))