从以下线程 ( Multiplying an array with a single value by a number? ) 我得到的信息是不可能通过执行 [1, 2]*3
将一个数字乘以数组中的所有元素。但由于我必须这样做,所以我想知道是否有一种聪明的方法可以做到这一点?
我知道我可以编写一个函数来遍历所有元素并手动将数字乘以每个元素。但我想知道是否有更聪明的出路?
也许有一些库实现了一些数学函数,我可以在其中将一个数字乘以数组的所有元素?
或者你认为Array的map函数可以用来达到这个目的吗?
最佳答案
您确实可以使用 map
函数:
function multiply(input) {
return input * 3;
}
var myArray = [1, 2];
var myNewArray = myArray.map(multiply);
它的作用是对数组中的每个元素执行您提供的函数,并返回一个包含结果的新数组。
如果您已经在使用 jQuery,您可以使用 each
函数使其更简洁:
$.each(myArray, function(index, value) {
myArray[index] = value * 3;
});
这会更改现有数组。虽然,使用纯 JS 方法,如果您不想要新变量,您可以执行 myArray = myArray.map(multiply);
。
我做了一个jsFiddle举个例子。
关于javascript - 将一个数字乘以一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484728/