Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止javascript中数组的第一个单元格出现NaN?_Javascript_Arrays_Nan - Fatal编程技术网

如何防止javascript中数组的第一个单元格出现NaN?

如何防止javascript中数组的第一个单元格出现NaN?,javascript,arrays,nan,Javascript,Arrays,Nan,请看以下代码: //This "loop for" converts the GPS latitude and longitude format to Google maps format. for (var counter1 = 0; counter1 < arrayLatitude.length; counter1++) { //Convert ddmm.mmmm to dd.dddd latitude var latitude1 = arrayLatitude[co

请看以下代码:

 //This "loop for" converts the GPS latitude and longitude format to Google maps format.
for (var counter1 = 0; counter1 < arrayLatitude.length; counter1++) {
    //Convert ddmm.mmmm to dd.dddd latitude
    var latitude1 = arrayLatitude[counter1].substr(0, 2);
    var latitude2 = arrayLatitude[counter1].substr(2, 9);
    var latitude3 = latitude2 / 60;
    arrayLatitude[counter1] = parseFloat(latitude1) + parseFloat(latitude3);


    //Convert ddmm.mmmm to dd.dddd longitude
    var longitude1 = arrayLongitude[counter1].substr(0, 2);
    var longitude2 = arrayLongitude[counter1].substr(2, 9);
    var longitude3 = longitude2 / 60;
    arrayLongitude[counter1] = parseFloat(longitude1) + parseFloat(longitude3);
}
但其他单元格具有正确的值

编辑: 这是我问题的简单形式:

alert(arrayLatitude[0]); //3241.1234

//This "loop for" converts the GPS latitude and longitude format to Google maps format.
for (var counter1 = 0; counter1 < arrayLatitude.length; counter1++) {
    //Convert ddmm.mmmm to dd.dddd latitude
    var latitude1 = arrayLatitude[counter1].substr(0, 2);
    var latitude2 = arrayLatitude[counter1].substr(2, 9);
    var latitude3 = latitude2 / 60;

    alert(arrayLatitude[0]); //3241.1234

    arrayLatitude[counter1] = parseFloat(latitude1) + parseFloat(latitude3);

    alert(arrayLatitude[0]); //NaN
}
或使用:

arrayLatitude.shift();

在本例中,我将“”字符保存到数组的第一个单元格中,然后将其删除。

如果要跳过/删除它们,只需
arrayLongitude.shift();顺序移位()循环之前/之后,您采取了哪些措施来解决此问题?数组的第一个成员显然没有什么特别之处。@naveen当然,这是另一种选择。至于我,当我在数组中循环时,我宁愿先“清理”它。但这只是IMO.@ParsaSoroori,所以在这个转换过程中,听起来您希望跳过它,并且(出于某种原因)您希望第一个元素与其他元素不同。如果这是你的问题,那么正如@naveen所说,只需在
1
而不是
0
@parsasorori开始循环,但是元素0应该是什么(在循环之前)?我很难理解为什么元素0应该保留,但被排除在外(您已经得到了一个答案:在循环中从1开始,而不是从0开始)。通常,数组中的每个元素都应该有相似的数据,这样您就可以以相似的方式对其进行操作,而不必担心出现异常。因此,要么元素0是“坏数据”,应该删除,要么是“好数据”,甚至不应该存储在数组中。但无论如何,你已经得到了答案:从1开始,而不是从0开始
arrayLatitude.splice(0, 1);
arrayLongitude.splice(0, 1);
arrayLatitude.shift();