如何防止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();