【问题标题】:Javascript for loop array length [closed]循环数组长度的Javascript [关闭]
【发布时间】:2017-08-26 03:38:43
【问题描述】:

我是 javascript 新手,我遇到了这个非常简单的问题。

    var counters = [];
    for (var i = 0; i < 3; i++) {
        counters.push[i];
    }
    alert(counters.length);

此代码预计警报 3,但实际结果为 0。有人可以请这个给我。我不确定如何询问此错误。谢谢

对不起这个问题..我已经解决了。谢谢回复

我还不能问另一个问题,因为业力不够。但我真正的问题是这个

for (var i = 0; i < 2; i++) {
if (i == 1) {document.write(" <tr class='noBorder' onclick='alert(i)');} 
if (i == 0){ document.write(" <tr class='noBorder' onclick='alert(i)');}
}

每当我点击一行时,警报都会产生 2。 基本上是这个问题,但是在html中 Passing parameter onclick, in a loop

【问题讨论】:

  • [] 用于访问数组元素,() 用于方法调用。

标签: javascript arrays variables scope push


【解决方案1】:

如果是推入数组,则需要推入值,语法为:array.push(value)

正确的方法是:

    var counters = [];
    for (var i = 0; i < 3; i++) {
        counters.push(i);
    }
    alert(counters.length);

【讨论】:

    【解决方案2】:
    counters.push[i];
    

    应该是

    counters.push(i);
    

    counters[i] = i;
    

    () 用于方法调用。 push 是一种适用于所有数组类型对象的方法,因此在这种情况下,您应该使用 () 向数组添加值。

    [] 用于访问对象上的(命名为动态的)属性。

    var obj = {
       a : 10,
       c : function() {
           return 20;
       } 
    };
    

    在上述访问ab 值的用例中,您将使用.[] 访问对象的属性。

    obj.a  || obj['a'];
    obj.b()  || obj['b']();
    

    因为属性c是一个函数,所以你应该先使用[]访问属性,然后使用()调用函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      • 2014-02-12
      • 2021-01-19
      • 1970-01-01
      • 2012-05-20
      • 2020-07-18
      相关资源
      最近更新 更多