循环数组并将每个值除以100

时间:2015-10-09 19:25:39

标签: javascript arrays

嘿,这是我的第一个问题,我只是找到了JS的方法。我有一个设置的数组,我想循环它并将每个值除以100,然后将输出打印到控制台。这是我要去的地方

var example =[5, 10, 15, 20]

for (var i=0; i < example.length; i++) {
  (example[i/100]);
}

console.log(example);

我知道我的问题出在(example[i/100]);行,但我不确定如何解决,任何帮助表示赞赏: - )

所以我的目标是到达

0.5,0.1,0.15,0.2

5 个答案:

答案 0 :(得分:4)

  

将每个值除以100,

是的,您希望将每个值除以100,但也将结果保存回到数组中。在JavaScript中,如果要进行一些计算并存储结果,则需要说

left-hand-side = calculation

换句话说,您需要使用赋值运算符(=)将计算结果分配给某个变量,数组元素或属性。

在您的情况下,&#34;计算&#34;是数组元素的值除以100,所以它将是

example[i] / 100

你可能想知道为什么example[i/100]不起作用。想一想。 []内的内容是数组索引。您不希望将索引i 除以100;您希望将索引i值除以100.

此计算的结果 - 将索引i处的元素除以100 - 您希望将返回放入同一位置的数组中。那么&#34;左手边&#34;也是element[i]。因此整个陈述是

example[i] = example[i] / 100;

您的尝试,

( example [ i/ 100] )
因此,

错过了几个级别的标记。首先,您将索引除以100,而不是将索引处的值除以100.其次,您没有将结果分配给任何东西 - 因此结果将被丢弃。

仅仅改变你知道的那条线是不稳定的,上面的example[i] = example[i] / 100;将使你的代码完美地运作。您不需要forEachmap或箭头功能(虽然我希望您能了解它们的内容,并尽快开始使用它们。)

在这种特殊情况下,我们将特定数组元素除以100的结果分配回相同数组元素。在这种情况下,JavaScript提供了特殊的赋值运算符,允许您避免重复对数组元素(或变量或对象属性)的引用。在这种情况下,您对&#34;除法运算符&#34;感兴趣,您可以将其用作

example[i] /= 100;
           ^^

但除了简洁之外,没有特别需要使用它。

答案 1 :(得分:3)

example[i/100]更改为example[i] /100,您可以从for循环中console.log每个响应。

var example = [5, 10, 15, 20];

for (var i = 0; i < example.length; i++) {
  console.log(example[i] / 100);
}

答案 2 :(得分:1)

我修改了你的代码(见下文):

var example = [5, 10, 15, 20];

example.forEach(function(i) {
  console.log(example[i] / 100);
});

关于上述内容的几点评论:

  1. 我相信你的意思是得到结果:0.05,0.1,0.15和0.2除以100 ..所以请记住你的数学。

  2. 您要除以数组example的索引,更改语法以表示以下内容:example[i] = example[i] / 10;,转换为简写形式:example[i] /= 100;

  3. 查看forEach函数,该函数作为数组上的for循环,它可以是您示例中的一个很好的实现。

  4. 假设你想扩展你的知识,那么如果你进入初级课程就会很棒。我无法想到比起这里更好的地方:CodeAcademy, Javascript courses ...我希望它有所帮助!

答案 3 :(得分:1)

非ES6代码可能如下所示。 map返回 new 数组,其中每个元素都已被函数更改。您是否想要一个新数组,或者是否使用for循环来更改现有数组的元素取决于您。

var example = [5, 10, 15, 20];

示例1

var out = example.map(function (el) {
    return el / 100;
});

console.log(out); // [ 0.05, 0.1, 0.15, 0.2 ]

示例2

for (var i = 0, l = example.length; i < l; i++) {
    example[i] = example[i] / 100;
}

console.log(example);

答案 4 :(得分:0)

更新以保存修改后的值

没有太多理由分别记录()每个值。您可以使用类似的东西来简化代码,使用漂亮的ES6箭头函数和ES5数组方法:

var example = [5, 10, 15, 20]

console.log(example = example.map(x => x/100))

注意:x => x/100等箭头函数目前可用于很少的Web浏览器。如果您想立即发布网络应用或网页,则应使用标准的匿名功能:function (x) { return x/100 }