【问题标题】:Invoke a function with a loop of arrays in javascript在 javascript 中使用数组循环调用函数
【发布时间】:2023-03-05 04:01:02
【问题描述】:

我有这个 node.js 代码:

var timeStamp = function() {
  var d = new Date();
  var year = d.getFullYear();
  var month = d.getMonth() + 1;
  var day = d.getDay();
  var hours = d.getHours();
  var minutes = d.getMinutes();
  var seconds = d.getSeconds();
  var milliseconds = d.getMilliseconds();
  var time = year + '.' + month + '.' + day + '. ' + hours + ':' + minutes + ':' + seconds + ':' + milliseconds;
  return time;
};

var tld = function() {
  var domainExtensions = ['.com', '.org'];

  for (var i=0; i<domainExtensions.length; i++) {
  return domainExtensions[i];
  }
};

// print process.argv
process.argv.forEach(function(val, index, array) {
  console.log(index + ': ' + val + '' + tld() + ' █ ' + timeStamp());
});

这个输出:

$ node index.js one two=three four
0: C:\Program Files\nodejs\node.exe.com █ 2015.11.5. 13:45:18:187
1: c:\www\node\command-line-arguments\index.js.com █ 2015.11.5. 13:45:18:191
2: one.com █ 2015.11.5. 13:45:18:192
3: two=three.com █ 2015.11.5. 13:45:18:192
4: four.com █ 2015.11.5. 13:45:18:193

但是我想要的是在控制台中打印每个数组循环的控制台参数:

$ node index.js one two=three four
0: C:\Program Files\nodejs\node.exe.com █ 2015.11.5. 13:45:18:187
1: C:\Program Files\nodejs\node.exe.hu █ 2015.11.5. 13:45:18:187
2: c:\www\node\command-line-arguments\index.js.com █ 2015.11.5. 13:45:18:191
3: c:\www\node\command-line-arguments\index.js.hu █ 2015.11.5. 13:45:18:191
4: one.com █ 2015.11.5. 13:45:18:192
5: one.hu █ 2015.11.5. 13:45:18:192
6: two=three.com █ 2015.11.5. 13:45:18:192
7: two=three.hu █ 2015.11.5. 13:45:18:192
8: four.com █ 2015.11.5. 13:45:18:193
9: four.hu █ 2015.11.5. 13:45:18:193

有没有办法做到这一点?

感谢您的帮助!

【问题讨论】:

    标签: javascript arrays node.js loops invoke


    【解决方案1】:

    试试这个

    var timeStamp = function() {
      var d = new Date();
      var year = d.getFullYear();
      var month = d.getMonth() + 1;
      var day = d.getDay();
      var hours = d.getHours();
      var minutes = d.getMinutes();
      var seconds = d.getSeconds();
      var milliseconds = d.getMilliseconds();
      var time = year + '.' + month + '.' + day + '. ' + hours + ':' + minutes + ':' + seconds + ':' + milliseconds;
      return time;
    };
    
    //better to be const
    var domainExtensions = ['.com', '.org'];
    
    // print process.argv
    process.argv.forEach(function(val, index, array) {
      domainExtentions.forEach(function(tld) {
         console.log(index + ': ' + val + '' + tld + ' █ ' + timeStamp());
      });
    
    });
    

    【讨论】:

    • 我收到以下控制台错误:ReferenceError: domainExtentions is not defined。我纠正了错误的输入。现在我遇到了另一个错误:ReferenceError: tld is not defined。我更正了它(tdl -> tld)并且它有效。谢谢!
    【解决方案2】:

    当你调用 return 时你离开了循环。 tld 函数总是返回“.com”。

    【讨论】:

      猜你喜欢
      • 2022-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多