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

Proper way to compare locations in javascript

本文关键字:方法 位置 javascript 比较      更新时间:2023-09-26

我遵循了代表csv和json位置的单个对象:

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

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

可以看到,当csv_lat - -118.3844时,json_lat提供-118.3844000

都与double具有相同的值,但与String

不同

应该是什么,高性能,怎么做?

谢谢,

你的问题不清楚,请学习如何问一个好问题(你说你"想让它们相等",但你想要的是检查字符串中包含的数字是否相等,这根本不是同一件事)。

您是否试图将这些字符串转换为浮点数?然后使用parseFloat(),然后可以将它们作为浮点数进行比较(注意规则)

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"

只需将值传递给浮动值并比较浮动值
或者你可能会遇到这个问题Javascript:比较两个float值

我不太明白你的意思。如果你想这样做:

我需要找到好的方法使value_location.csv_lat和value_location。Json_lat = .

那么value_location.csv_lat = value_location.json_lat就会起作用了

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

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