如何在javascript中检查两对数字是否相等

时间:2014-05-03 07:40:30

标签: javascript

我是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++;

    }


}

谢谢!

3 个答案:

答案 0 :(得分:3)

假设ab是数组,您可以执行以下操作:

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." );
        }
    }
}

jsFiddle Demo

答案 2 :(得分:0)

我已将它转换为String,如下所示,它帮助我比较了对:

   if(String(a[i]) == String(b[i]))