Javascript,找到第一个有效数字(值范围从87.352到0.0002432)
我用坐标创建了一个GPS系统 我使用此函数找到了最高和最低经纬度坐标:Javascript,找到第一个有效数字(值范围从87.352到0.0002432),javascript,gps,coordinates,Javascript,Gps,Coordinates,我用坐标创建了一个GPS系统 我使用此函数找到了最高和最低经纬度坐标: var maxLng = 0; var maxLat = 0; var minLng = 180; var minLat = 180; for(var i=0; i<coordinates.length; i++) { //get max coordinates (the +90 is to remove negative numbers) if (coordinates[i][0]+
var maxLng = 0;
var maxLat = 0;
var minLng = 180;
var minLat = 180;
for(var i=0; i<coordinates.length; i++)
{
//get max coordinates (the +90 is to remove negative numbers)
if (coordinates[i][0]+90 > maxLat)
{
maxLat = coordinates[i][0] + 90;
}
if (coordinates[i][1]+90 > maxLng)
{
maxLng = coordinates[i][1]+ 90;
}
//get min coordinates
if (coordinates[i][0]+90 < minLat)
{
minLat = coordinates[i][0] + 90;
}
if (coordinates[i][1]+90 < minLng)
{
minLng = coordinates[i][1] + 90;
}
}
console.log(maxLat, maxLng,minLat, minLng);
//calculate distance between max and min points
var lngDistance = maxLng - minLng;
var latDistance = maxLat - minLat;
console.log(lngDistance, latDistance);
我想先找出第一个有效的数字,然后计算它离小数点有多远。我发现了一些关于使用正则表达式来实现这一点的帖子,但我以前从未使用过正则表达式
有人能给我一些指点吗
干杯。这是一个有趣的发现 为你做了一个基本的功能,据我所知,它是有效的
function change(data){
var ret=new Array();
for(var i=0,len=data.length;i<len;i++){
// make string from number, remove the dot
var st=(''+data[i]).replace('.','');
//remove leading zero's from string
var no_zero=st.replace(/^0+/,'');
//make value
var val=parseInt(no_zero)/(Math.pow(10,no_zero.length-2));
//calculate amount of steps
var steps=Math.round(Math.log(Math.round(val/data[i]))/Math.log(10));
//correction for floating point
if(data[i]<0.01)steps--;
ret.push([data[i],val,steps]);
}
return ret;
}
功能更改(数据){
var ret=新数组();
对于(var i=0,len=data.length;iRegex是将数字转换为2个有效数字的错误工具mmm好的,谢谢nhahtdh,你能想出任何工具来帮助我解决这个问题吗?被它困扰了好几个小时!你正在使用的示例的预期结果是什么?0 19 2 0 0 0 0?或0.00093 19 1.9 0.0013 0.23 0.000034?我已经编辑了这个问题,以示说明我想输出的是什么检查一下:在你使用它之后,我想你可以在e
处拆分并处理输出。
function change(data){
var ret=new Array();
for(var i=0,len=data.length;i<len;i++){
// make string from number, remove the dot
var st=(''+data[i]).replace('.','');
//remove leading zero's from string
var no_zero=st.replace(/^0+/,'');
//make value
var val=parseInt(no_zero)/(Math.pow(10,no_zero.length-2));
//calculate amount of steps
var steps=Math.round(Math.log(Math.round(val/data[i]))/Math.log(10));
//correction for floating point
if(data[i]<0.01)steps--;
ret.push([data[i],val,steps]);
}
return ret;
}