在javascript中比较位置的正确方法

时间:2013-06-16 12:33:42

标签: javascript

我已经跟踪了表示来自csv和json的位置的单个对象:

 "value_location1": {
  "json_lat": "-118.3844000",
  "csv_lat": "-118.3844"
   },
  "value_location2": {
  "json_lat": "-117.933122",
  "csv_lat": "-117.933122"
},

实际上我有这些对象 145k(importent)的数组,我需要找到让value_location.csv_latvalue_location.json_lat相等的好方法。

正如您json_lat - -118.3844000csv_lat提供-118.3844一样。

两者的值与 double 相同,但不是 String

应该是什么,高绩效,这样做的方法?

谢谢,

4 个答案:

答案 0 :(得分:3)

你的问题不清楚,请学习how to ask a good question(你说你“想让它们等于”但你想要的是检查字符串中包含的数字是否相等,这在全部)。

您是否尝试将这些字符串转换为浮点数?然后使用parseFloat(),然后您可以将它们作为浮点数(be aware of the rules

进行比较
value_location.csv_lat = parseFloat(value_location.csv_lat, 10);
// value_location.json_lat is the number -118.3844
value_location.json_lat = parseFloat(value_location.json_lat, 10);
// value_location.csv_lat is the number -118.3844

你是否试图删除字符串末尾的额外0,无论结肠后有多少位数?如果是这样,只需在parseFloat()

之后将它们转换回字符串
value_location.csv_lat = parseFloat(value_location.csv_lat, 10) + '';
// value_location.json_lat is the string "-118.3844"
value_location.json_lat = parseFloat(value_location.json_lat, 10) + '';
// value_location.csv_lat is the string "-118.3844"

答案 1 :(得分:1)

只需将值粘贴到浮点数并比较浮点值 或者您可能会遇到此问题Javascript: Comparing two float values

答案 2 :(得分:1)

不完全确定你的意思。如果你想要这个:

  

我需要找到使value_location.csv_lat和value_location.json_lat相等的好方法。

然后value_location.csv_lat = value_location.json_lat将会有效。

答案 3 :(得分:0)

对于初学者来说,JavaScript只有number数据类型。但是,如果您希望这两个数字等于相同string,请使用toFixed()方法获取所需的小数点数。像这样:

var example_number = 5.333000;
var rounded_number = example_number.toFixed(2);
alert(rounded_number);