我试图了解有关数组的更多信息,因此我只是编写了这个简单的函数:
(我从doThis
调用onClick
进行测试
function doThis() {
var multiplier = 3;
var list = [23, 54, 23, 25, 65];
var products = multiply(list, multiplier);
console.log(products);
}
function multiply(list, multiplier) {
list.forEach(function (element){
var multi = [element * multiplier];
console.log(multi);
return multi;
});
}
我的问题有两个方面:
var products
正在返回undefined
。multi
中存储多个值。最终目标是让var products
持有multi
数组。
答案 0 :(得分:1)
使用map()
当您计划从现有阵列返回新阵列时。 forEach()
允许您迭代数组,但不会返回任何新数组。
function doThis() {
var multiplier = 3;
var list = [23, 54, 23, 25, 65];
var products = multiply(list, multiplier);
console.log(products);
}
function multiply(list, multiplier) {
return list.map(function (element){
return element * multiplier;
});
}
doThis();

答案 1 :(得分:0)
这里有多点:
list.forEach()
的返回值。在list.forEach(function (element){
undefined
。 返回值
要返回每次迭代的结果,请使用map()或手动将每个返回值添加到数组中。
请参阅下面代码段中的更改。
要详细了解map()和类似功能,请尝试these exercises。
function doThis() {
var multiplier = 3
var list = [23, 54, 23, 25, 65]
var products = multiply(list, multiplier)
console.log('products: ', products)
}
function multiply(list, multiplier) {
return list.map(
function(element) {
var multi = [element * multiplier]
return multi
}
);
}
document.getElementById('doThis').addEventListener('click', doThis);
<button id="doThis">doThis()</button>
答案 2 :(得分:0)
在数组上的return
函数中使用forEach
不会更改原始数组的值。
您需要指定要设置值的位置。我建议在forEach
匿名函数中使用第二个参数,作为元素的索引。
然后您可以轻松地执行list[index] = "my new value";
此外,将乘法操作的值放在括号之间(您执行var multi = [element * multiplier];
)会为每个值创建一个单元素数组。
以下是我如何保留一维数组:
function doThis() {
var multiplier = 3
var list = [23, 54, 23, 25, 65]
var products = multiply(list, multiplier)
console.log(products)
}
function multiply(list, multiplier) {
list.forEach(function(element, index) {
list[index] = element * multiplier
});
return list;
}
doThis();
&#13;
答案 3 :(得分:0)
function doThis() {
var multiplier = 3
var list = [23, 54, 23, 25, 65]
var products = multiply(list, multiplier)
console.log(products)
}
function multiply(list, multiplier) {
var multi = [] ;
list.forEach(
function (element){
multi.push(element * multiplier)
console.log(multi)
//return multi
}
);
return multi ;
}
答案 4 :(得分:0)
您在学习数组时可以使用for
循环:
function multiply(list, multiplier) {
var multi = [];
for (i = 0; i < list.length; i++) {
multi.push(list[i] * multiplier)
}
return multi;
}