【问题标题】:How can I split a string into two float numbers in Javascript?如何在Javascript中将一个字符串拆分为两个浮点数?
【发布时间】:2020-12-05 16:59:26
【问题描述】:
function xyDistance(from,to){
var s=from.split(",");
var x1=parseFloat(s[0]);
 var y1=parseFloat(s[1]);


 var dt = Math.sqrt( (x2-x1)**2+(y2-y1)**2);
 return dt;
}

我将输入两个坐标作为字符串。我已经把它们分开了,但是我不知道如何分开两点的X和Y坐标。照片显示了输入值和预期输出值。

【问题讨论】:

  • 只是... .split 他们再次与,?

标签: javascript computer-science


【解决方案1】:

对于每个fromto,您只需将其拆分并解析

function xyDistance(from, to) {
  var [x1, y1] = from.split(",").map(axis => parseInt(axis, 10));
  var [x2, y2] = to.split(",").map(axis => parseInt(axis, 10));


  var dt = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);
  return dt;
}

console.log(xyDistance('1,1', '0,0'))

【讨论】:

    【解决方案2】:

    我不确定您的算法应该做什么,但要获得两者的 x,y 坐标,只需对每个参数进行拆分。而且,仅供参考,JavaScript 中的所有数字都是浮点数(除非将它们格式化为整数,否则它们不会以小数形式显示)。

    function xyDistance(from,to){
      var f = from.split(",");
      var x1 = parseFloat(f[0]);
      var y1 = parseFloat(f[1]);
      
      var t = to.split(",");
      var x2 = parseFloat(t[0]);
      var y2 = parseFloat(t[1]);  
        
      console.log("from x,y are: " + x1 + ", " + y1);
      console.log("to x,y are: " + x2 + ", " + y2);  
    }
    
    xyDistance("1,1","0,0");
    xyDistance("1,1","-1,-1");
    【解决方案3】:

    function xyDistance(from,to){
    const [x1, y1] = from.split(",");
    const [x2, y2] = to.split(",");
    const dt = Math.sqrt((x2-x1)**2+(y2-y1)**2);
    return dt;
    }
    
    console.log(xyDistance("2,1", "0,1"))

    试试上面的代码,不需要解析float

    【讨论】:

      【解决方案4】:

      您可以拆分值并将相同索引的增量作为Math.hypot 的值。

      function xyDistance(from, to) {
          const
              f = from.split(',');
              t = to.split(',');
      
          return Math.hypot(f[0] - t[0], f[1] - t[1]);
      }
      
      console.log(xyDistance("1,1", "0,0"));
      console.log(xyDistance("1,1", "-1,-1"));

      【讨论】:

        【解决方案5】:

        此代码将起作用

        function xyDistance(from,to){
        var f=from.split(",");
        var fx=parseFloat(f[0]);
        var fy=parseFloat(f[1]);
        
        var t=to.split(",");
        var tx=parseFloat(t[0]);
        var ty=parseFloat(t[1]);
        
        
         var dt = Math.sqrt( (fx-tx)**2+(fy-ty)**2);
         return dt;
        }
        

        【讨论】:

          猜你喜欢
          • 2016-01-15
          • 2017-10-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-14
          相关资源
          最近更新 更多