【问题标题】:Converting to For loop javascript转换为 For 循环 javascript
【发布时间】:2014-01-22 06:32:26
【问题描述】:

我有以下js代码:

    function splitter(somestr){
     "use strict";
     var bb0 = somestr.split(":");
     return bb0;
}

    var plist = [t_str, f_str, c_str, d_str, e_srt, o_str, k_str];

    var aa0 = splitter(plist[0]);
    var aa1 = splitter(plist[1]);
    var aa2 = splitter(plist[2]);
    var aa3 = splitter(plist[3]);
    var aa4 = splitter(plist[4]);
    var aa5 = splitter(plist[5]);
    var aa6 = splitter(plist[6]);

我想把它转换成一个for循环:

    for (var k = 0; k < plist.length; k++) {
    var a = plist[k];
    var aa[k] = splitter(a);
    return aa[k];}

我做错了什么,我在循环中错误地调用了拆分器函数吗?

【问题讨论】:

  • 在不知道数组内部是什么、预期输出与您得到什么的情况下,我们无法回答这个问题。
  • aa[0]aa0 不同
  • 你正确地调用了函数,但是你不能有像var aa[k]这样的变量声明。不要使用带有数字索引的变量,而是使用数组。所以,在循环之前:var aa = []; 并在循环中aa[k] = ...;
  • 数组 plist 中的每个元素都采用 8:20 的形式,即一个时间。 splitter 函数将 p-list 中所需的元素拆分为一个 2 宽的数组。

标签: javascript function loops for-loop


【解决方案1】:

我猜您想将值存储在 aa 中,这意味着您需要将其向上移动:

var aa = [];
for (var k = 0; k < plist.length; k++) {
    var a = plist[k];
    aa[k] = splitter(a);
}

// Do something with aa

【讨论】:

    【解决方案2】:

    我假设您想对plist 数组的每个元素执行splitter 操作并将结果存储在某处。试试:

    var aa = plist.map(function(element){return splitter(element);})
    

    【讨论】:

      【解决方案3】:

      跟随没有意义

      function splitter(somestr){
       **"use strict"; // This is not making sense**
       var bb0 = somestr.split(":");
       return bb0;
      

      }

      并且在下面的a 必须是您要为其分配值的数组。

      for (var k = 0; k < plist.length; k++) {
          var a = plist[k];
          var aa[k] = splitter(a);
          return aa[k];}
      

      【讨论】:

      • 你是说严格模式不是个好主意还是你不知道严格模式是什么?
      • @user2951753 什么???请阅读Strict mode。另外为什么在世界上a 应该是一个数组? a 被传递给splitter(),并在那里被视为字符串...
      • 我已将严格模式注释掉。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-12
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 2012-10-13
      • 2015-12-03
      • 1970-01-01
      相关资源
      最近更新 更多