【问题标题】:typescript passing array of numbers/string to function打字稿将数字/字符串数组传递给函数
【发布时间】:2020-05-21 06:49:13
【问题描述】:

我对此感到有些震惊。

单个请求:

  1. 使用模型绑定两个输入框已传递给我的打字稿函数,它需要两个参数并显示输出,效果非常好。下面是我的示例函数。

    convert(X, Y) {
     this.output = X * Y;
    
    console.log("Output:", this.output);
    
    } 
    
  2. 批量请求

另一种情况是:

我有一个输入文本区域,用户可以在其中从 Excel / txt 文件中复制和粘贴大量数据。我想将每一行传递给我上面的打字稿函数。如何让\t and \n 输入我的打字稿函数

我还为此创建了 stackblitz。任何人都可以帮忙。谢谢。

Stackblitz 编辑器网址:https://stackblitz.com/edit/primeng-passing-srting-array-to-function

【问题讨论】:

    标签: angular typescript primeng


    【解决方案1】:
    function bulkConvert(text: string) {
      const pairs = text
        .split(/\n/) // split by line
        .map(pair => pair
          .split(/[\s]+/) // split by whitespace
          .map(numString => parseFloat(numString)) // parse string to number
        ); 
      const results = pairs.map(([x, y]) => x * y);
      // then do whatever you want with results, I think you want this.outputBulk = results;
    }
    

    【讨论】:

    • 对此表示衷心的感谢。我有一个像const results = pairs.map(([x, y]) => [this.convert(x, y)]); 这样的场景,我将 x 和 Y 传递给另一个函数。我想保存正在转换的输出,但是当我尝试保存时,我的变量中不断出现 null。
    • 如果此方法按照您原始帖子中的方式实现,它将不适用于this.convert(x, y)。如果您想重用它,您应该将convert(x, y) 拆分为两种方法 - 一种进行计算并返回结果(基本上只是return x*y;),另一种将结果保存到this.output。然后,您可以使用在批量和单参数情况下进行计算的方法。
    猜你喜欢
    • 2016-12-08
    • 2014-09-06
    • 2015-09-09
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多