我是JavaScript的新手,我想知道如何比较两对数字。我有两个数组,数组中的每个元素都是一对格式。 例如,我有这种格式的数组:
[(37.4,122.7), (38.4,133.2)....]
表示每个数组。现在,如何比较这两个数组的每个元素是否相等?我已经尝试过检查它们是否平等的常规方法:
a[i] == b[i]
a[i] === b[i]
它们似乎不起作用。任何人都可以建议一种方法来做到这一点? 我正在将这种格式的JSON数组加载到变量'jarr'并将其解析为jString:
[{"ip":"150.101.33.44","latitude":-27.0,"longitude":133.0},
{"ip":"150.101.33.24","latitude":-27.0,"longitude":133.0},
{"ip":"150.101.33.7","latitude":-27.0,"longitude":133.0},
{"ip":"150.101.33.22","latitude":-27.0,"longitude":133.0},
{"ip":"72.14.221.174","latitude":37.4192,"longitude":-122.0574}]
请找到以下代码:
var temp = 0;
var lat_lng = new Array(100);
var ipArr = new Array(100);
var jarr = '<%=request.getAttribute("locArr") %>';//This is JSON array.
var jString = JSON.parse(jarr);
for(key in jString){
var lat = JSON.stringify(jString[key].latitude);
var lon = JSON.stringify(jString[key].longitude);
var myLatlng = new google.maps.LatLng(lat, lon);
flag=0;
for(var i=0;i<=temp;i++){
if(key==0)
{
src="Source";
}
else
{
if(key==jString.length-1)
{
dest="Destination";
}
else
{
src="";
dest="";
}
}
if(key==0)
{
lat_lng[temp] = myLatlng;
var a=lat_lng[i];
ipArr[temp] = src+dest+ JSON.stringify(jString[key].ip);
temp++;
i++;
}
if(lat_lng[i] === myLatlng){ //This is where I am trying to compare
flag=1;
alert(flag);
ipArr[i] += src+dest+JSON.stringify(jString[key].ip);
i++;
}
}
if(flag == 0)
{
lat_lng[temp] = myLatlng;
ipArr[temp] = src+dest+ JSON.stringify(jString[key].ip);
temp++;
}
}
谢谢!
答案 0 :(得分:3)
假设a
和b
是数组,您可以执行以下操作:
a.join() == b.join()
.join()
会将数组转换为字符串,然后进行比较
答案 1 :(得分:1)
试试这个,
var array1 = [[33.22, 22, 40], [41.33, 33, 41]];
var array2 = [[32.22, 22, 40], [42.33, 33, 41]];
for(var i = 0; i < array1.length; i++){
for(var j = 0; j < array1[i].length; j++){
if(array1[i][j] == array2[i][j]){
alert(array1[i][j] + " and " + array2[i][j] + " are equal." );
}
else{
alert(array1[i][j] + " and " + array2[i][j] + " are not equal." );
}
}
}
答案 2 :(得分:0)
我已将它转换为String,如下所示,它帮助我比较了对:
if(String(a[i]) == String(b[i]))