【发布时间】:2015-03-17 22:35:15
【问题描述】:
我有一个数字数组:
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;});,但结果是不确定的。
【问题讨论】:
-
你检查过 underscore.js 吗?您可以映射数组元素。
-
.forEach(function() { <code> })基本上等价于for(...) { <code> }。您将两个数字相乘,但您没有对结果做任何事情。它不会神奇地为你做点什么。 -
@dustmouse 从答案中可以看出,
map是本机 JavaScript 中一个相当广泛可用的函数,现在不使用库。链接页面还有一个 polyfill,适用于本机不支持它的浏览器。 -
@詹姆斯索普。 IE 8 及以下版本的一些旧浏览器不支持原生数组映射功能。为什么不使用诸如 underscore.js 之类的文档齐全且相对标准的库来处理浏览器兼容性/实现细节以及提供大量其他功能?
-
@dustmouse 这就是 polyfill 的作用。它为缺少它们的浏览器填充实现。
标签: javascript arrays foreach