javascript - 在 JavaScript 中使用 forEach 将数组的所有元素乘以数字

标签 javascript arrays foreach

我有一个数字数组:

var array = [ 23, 67, 120, 170, 200, 212, 350 ];

我想将数组的每个元素缩小 20%。

我使用了 array.forEach(function(item) {item * 0.8;});,但它什么也没做。我也尝试了 var scaledArray = array.forEach(function(item) {item * 0.8;});,但结果未定义。

最佳答案

forEach针对数组中的每个元素调用提供的函数;它不会返回具有修改值的新数组(来自对每个元素调用提供的函数)。您要使用的是 map :

array = array.map(function(element) {
    return element * 0.8;
});

这将根据您提供的映射函数映射数组的每个元素,并返回由这些映射值组成的新数组。

如果你想保留原始数组,你可以简单地将 map 的结果分配给一个不同的变量:

var scaledArray = array.map(function(element) {
    return element * 0.8;
});

可以使用 forEach 完成这两个操作,例如:

array.forEach(function(element, index, _array) {
    _array[index] = element * 0.8;
});

和:

var scaledArray = [];
array.forEach(function(element, index) {
    scaledArray[index] = element * 0.8;
});

但我相信您会同意 map 版本更加优雅和惯用。

关于javascript - 在 JavaScript 中使用 forEach 将数组的所有元素乘以数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29111002/

相关文章:

javascript - Fine Uploader 和 ServiceStack 设置响应 header

c# - 为什么在此示例中 LINQ 更快

php - Mysql INSERT INTO 和 UPDATE 无法正常工作

javascript - 如何在给定时间之前停止执行指令?

javascript - PHP 对重音符号和特殊字符进行编码

java - 覆盖自身的字符串数组列表

java - 如何检查字符数组的元素是否为空?

php - 添加计数到 jQuery 在 PHP foreach 中添加的行

javascript - 检查ajax/php返回的数据

java从字符串: org. json.JSONException创建JSONArray:错误字符 ':'