【问题标题】:Adding values to an array in JavaScript loops [closed]在 JavaScript 循环中向数组添加值 [关闭]
【发布时间】:2020-10-25 12:29:18
【问题描述】:

我正在学习 JavaScript,我使用循环将一些值添加到数组中,然后打印主题并查看结果。我用不同的方法做到了这一点,但其中一种方法有问题。

在下面的代码中,我想不出在循环中使用 for/in 向数组添加值的方法。我该怎么做?

<script type="text/javascript">
function print(string){
    document.write(string+"<br>");
}
</script>

<script type="text/javascript">

    print("with for & for..in");
    var ma1Arr = [];

    for (i = 10; i < 20; i++) {
        ma1Arr.push(i);
    }
    for (i in ma1Arr) {
        print(ma1Arr[i]);
    }

    print("<hr>");
    print("with for & for..in  vice versa");
    var ma3Arr = [];
    i=20;
    for (i in ma3Arr){
        ma3Arr.push(i);
        i++
    }
    for (i=0; i<ma3Arr.length; i++){
        print(ma3Arr[i])
    }

    print("<hr>");

    print("with while & do..while");
    var ma2Arr = [];
    i = 30;
    do {
        ma2Arr.push(i);
        i++;
    } while (i < 40);
    i = 0;
    while (i < ma2Arr.length) {
        print(ma2Arr[i]);
        i++;
    }

    print("<hr>");
    print("with while & do..while vice versa");
    var ma4Arr = [];
    i = 40;
    while (i<=50){
        ma4Arr.push(i);
        i++;
    }
    i = 0
    do {
        print(ma4Arr[i]);
        i++;
    }while (i<ma4Arr.length);
</script>

【问题讨论】:

  • 与您在 for(x;y;z) 外观中添加值的方式相同!
  • 您好,感谢您的回复,我已经更新了上面的代码,并将我正在尝试处理的代码放入代码框中,“with for & for..in 反之亦然”对于添加值,如何设置必须添加到数组的值的开始和结束范围?
  • @alfer :) 谢谢您知道如何修复此代码吗?我遇到了“with for & for..in 反之亦然”方法的问题,我试图将带有 'for/in' 的值添加到数组中,并使用 'for' 查看结果。

标签: javascript html arrays loops for-in-loop


【解决方案1】:

for...in 用于像 {a: 1, b: 4} 这样的对象,而不是用于数组。它正在迭代对象的所有可枚举属性,例如 a 和 b。但是对于数组,您需要使用 for...of

for..in https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in

对于...https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...of

【讨论】:

  • 您好,感谢您的回复,正如我在上面的代码中所理解的那样,在这种情况下“使用 for & for..in 反之亦然”我不能这样做(将值添加到带有“for/in”的数组,并使用“for”查看结果)。
  • 不,因为 for...in 和 for...of 迭代内部已经有数据的对象。这就是它没有按照您的想法工作的原因,因为没有数据可以迭代。并且这些类型的循环不是为向您正在迭代的同一源添加值而设计的。如果你在一个空数组 [] 上使用 for..of 什么都不会发生,因为它是空的。对于空的 json 对象 {} 与 for..in 相同
【解决方案2】:
 var array_name = [item1, item2, ...];

您将值放在括号内...这基本上是您为任何语言制作数组的方式

【讨论】:

  • 嗨,谢谢你,我想通过有一个空数组来让它变得更难,并使用 Array.puch 向它添加一些值,基本上是为了测试循环,但我遇到了“with for & for..in 反之亦然”的方法,我正在尝试使用 'for/in' 添加值并使用 'for' 查看结果。
猜你喜欢
  • 2014-04-16
  • 1970-01-01
  • 2019-09-20
  • 1970-01-01
  • 1970-01-01
  • 2014-10-04
  • 2011-07-20
  • 1970-01-01
相关资源
最近更新 更多