javascript - 如何在将当前元素与下一个元素进行比较时迭代数组的最后一个元素?

标签 javascript arrays iteration arrow-functions

我有一个包含键值对的数组。键是(ID、Lat、Lon)。

我想做的是将当前元素 ID 与下一个元素 ID 进行比较,如果它们相等,则将当前元素的 Lat 和 Lon 放入一个对象(在我的例子中为“point”)并调用一个函数(InjectIntoArray on初始化全局数组 points[]) 的那个点。

当条件变为假时(即当前 id 不等于下一个 id),在 else 部分我将当前元素 Lat 和 Lon 放在一个对象中并在该对象上调用一个函数,这是因为下一个元素的 ID 正在不同,我必须获得当前元素 ID 的所有纬度和经度。

问题出现在检查最后一个元素时,没有获取到最后一条记录就退出了。(即list[lastElement])。

如何获取所有元素的纬度和经度?有没有更好的方法来实现这一点?

这是我的数组-

var list = [
            { id: 100, Lat: 19.25, Lon: 74}, { id: 100, Lat: 19.79, Lon: 74.19 }, 
            { id: 101, Lat: 19.99, Lon:75.10 }, { id: 101, Lat: 20.37, Lon:68.9}, 
            { id: 119, Lat: 17, Lon: 70 }, { id: 107, Lat: -16, Lon: -165 }, 
            { id: 107, Lat: -15, Lon: -150 }
           ];

还有代码-

for (let i = 0; i < list.length - 1;i++) {
   if (list[i].id == list[i+1].id) {
      var point = { LATITUDE: list[i].Lat, LONGITUDE: list[i].Lon };
      InjectIntoArray(point);
   }
   else {
       var point = { LATITUDE: list[i].Lat, LONGITUDE: list[i].Lon };
       InjectIntoArray(point);
       plotRoute(false,2);
       points = [];
  }

}

最佳答案

不确定您要做什么,但是如何:

for (let i = 0; i < list.length; i++) {

     if (i == (list.length - 1)) {
        // do what you want to do with the last one
     }
     else if (list[i].id == list[i+1].id) {
        var point = { LATITUDE: list[i].Lat, LONGITUDE: list[i].Lon };
        InjectIntoArray(point);
     }
     else {
        var point = { LATITUDE: list[i].Lat, LONGITUDE: list[i].Lon };
        InjectIntoArray(point);
        plotRoute(false,2);
        points = [];
     }
}

关于javascript - 如何在将当前元素与下一个元素进行比较时迭代数组的最后一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51738657/

相关文章:

javascript - 从 moment.js 获取时区列表

javascript - 如何格式化字符串以修复 Javascript 中的缩进?

javascript - 使数组成为一个将给定值添加到数组中的数字的函数

python - python 迭代两个数组的快速方法

python - Python 中从前到后遍历列表的最佳方式是什么?

javascript - 在 Google Chrome 扩展程序中需要外部 JavaScript

javascript - 在 Node.js 中使用 Q Promise 循环

进行公差分析的代码

javascript - 在 PHP 中使用 HTML 标签

python - 在 Python 中遍历一系列日期