判断数组对象,里面出现的坐标值,重复的话,给对象加一个flag:true表示,这个坐标出现过。

柚花离海
  • 7

述判断数组对象,里面出现的坐标值

我个人只能想到,把值都取出来然后重新判断

const arr = [

  {
    'start': '中国(北京)',
    'end': '芬兰',
    'startCoordinates': [108.479, 23.1152],
    'endCoordinates': [24.909912, 60.169095]
  },
  {
    'start': '美国西部(加利福尼亚北部)',
    'end': '广州',
    'startCoordinates': [-121.712891, 38.00],
    'endCoordinates': [113.23, 23.16]
  },
  {
    'start': '亚太区域(孟买)',
    'end': '香港',
    'startCoordinates': [72.49, 18.56],
    'endCoordinates': [114.15, 22.15]
  },
  {
    'start': '加拿大(中部)',
    'end': '欧洲(法兰克福)',
    'startCoordinates': [-106.346771, 56.130366],
    'endCoordinates': [8.41, 50.07]
  },
  {
    'start': '欧洲(法兰克福)',
    'end': '伦敦',
    'startCoordinates': [-106.346771, 56.130366],
    'endCoordinates': [0.15, 51.30]
  },
  {
    'start': '美国西部(俄勒冈)',
    'end': '深圳',
    'startCoordinates': [-122.1, 42.9],
    'endCoordinates': [114.07, 22.62]
  },
  {
    'start': '美国东部(俄亥俄)',
    'end': '上海',
    'startCoordinates': [-82.90, 40.41],
    'endCoordinates': [121.48, 31.22]
  },
  {
    'start': '美国东部(弗吉尼亚北部)',
    'end': '宁夏',
    'startCoordinates': [-76.16, 38.53],
    'endCoordinates': [104.17, 35.14]
  },
  {
    'start': '中国(宁夏)',
    'end': '北京',
    'startCoordinates': [104.17, 35.14],
    'endCoordinates': [108.479, 23.1152]
  },
  {
    'start': '欧洲(爱尔兰)',
    'end': '巴黎',
    'startCoordinates': [-8.24389, 53.41291],
    'endCoordinates': [2.20, 48.51]
  },
  {
    'start': '亚太区域(东京)',
    'end': '洛杉矶',
    'startCoordinates': [139.69, 35.68],
    'endCoordinates': [-118.15, 34.03]
  },
  {
    'start': '亚太区域(悉尼)',
    'end': '亚太区域(东京)',
    'startCoordinates': [151.12, -33.51],
    'endCoordinates': [139.69, 35.68]
  },
  {
    'start': '亚太区域(首尔)',
    'end': '新加坡',
    'startCoordinates': [126.58, 37.33],
    'endCoordinates': [103.51, 1.18]
  },
  {
    'start': '亚太区域(新加坡)',
    'end': '台北',
    'startCoordinates': [103.51, 1.18],
    'endCoordinates': [119.18, 20.45]
  }

]

当有重复的坐标时,添加属性
const arr = [

  {
    'start': '中国(北京)',
    'end': '芬兰',
    'startCoordinates': [108.479, 23.1152],
    'endCoordinates': [24.909912, 60.169095]
  },
  {
    'start': '美国西部(加利福尼亚北部)',
    'end': '广州',
    'startCoordinates': [-121.712891, 38.00],
    'endCoordinates': [113.23, 23.16]
  },
  {
    'start': '亚太区域(孟买)',
    'end': '香港',
    'startCoordinates': [72.49, 18.56],
    'endCoordinates': [114.15, 22.15]
  },
  {
    'start': '加拿大(中部)',
    'end': '欧洲(法兰克福)',
    'startCoordinates': [-106.346771, 56.130366],
    'endCoordinates': [8.41, 50.07]
  },
  {
    'start': '欧洲(法兰克福)',
    'end': '伦敦',
    'startCoordinates': [-106.346771, 56.130366],
    'endCoordinates': [0.15, 51.30]
  },
  {
    'start': '美国西部(俄勒冈)',
    'end': '深圳',
    'startCoordinates': [-122.1, 42.9],
    'endCoordinates': [114.07, 22.62]
  },
  {
    'start': '美国东部(俄亥俄)',
    'end': '上海',
    'startCoordinates': [-82.90, 40.41],
    'endCoordinates': [121.48, 31.22]
  },
  {
    'start': '美国东部(弗吉尼亚北部)',
    'end': '宁夏',
    'startCoordinates': [-76.16, 38.53],
    'endCoordinates': [104.17, 35.14]
  },
  {
    'start': '中国(宁夏)',
    'end': '北京',
    'startCoordinates': [104.17, 35.14],
    'endCoordinates': [108.479, 23.1152]
  },
  {
    'start': '欧洲(爱尔兰)',
    'end': '巴黎',
    'startCoordinates': [-8.24389, 53.41291],
    'endCoordinates': [2.20, 48.51]
  },
  {
    'start': '亚太区域(东京)',
    'startFlag': true,
    'end': '洛杉矶',
    'startCoordinates': [139.69, 35.68],
    'endCoordinates': [-118.15, 34.03]
  },
  {
    'start': '亚太区域(悉尼)',
    'end': '亚太区域(东京)',
    'startCoordinates': [151.12, -33.51],
    'endCoordinates': [139.69, 35.68]
  },
  {
    'start': '亚太区域(首尔)',
    'end': '新加坡',
    'startCoordinates': [126.58, 37.33],
    'endCoordinates': [103.51, 1.18]
  },
  {
    'start': '亚太区域(新加坡)',
    'end': '台北',
    'startFlag': true,
    'startCoordinates': [103.51, 1.18],
    'endCoordinates': [119.18, 20.45]
  }

]

回复
阅读 1.2k
2 个回答
✓ 已被采纳
const arr = [{
    'start': '中国(北京)',
    'end': '芬兰',
    'startCoordinates': [108.479, 23.1152],
    'endCoordinates': [24.909912, 60.169095]
  },
  {
    'start': '美国西部(加利福尼亚北部)',
    'end': '广州',
    'startCoordinates': [-121.712891, 38.00],
    'endCoordinates': [113.23, 23.16]
  },
  {
    'start': '亚太区域(孟买)',
    'end': '香港',
    'startCoordinates': [72.49, 18.56],
    'endCoordinates': [114.15, 22.15]
  },
  {
    'start': '加拿大(中部)',
    'end': '欧洲(法兰克福)',
    'startCoordinates': [-106.346771, 56.130366],
    'endCoordinates': [8.41, 50.07]
  },
  {
    'start': '欧洲(法兰克福)',
    'end': '伦敦',
    'startCoordinates': [-106.346771, 56.130366],
    'endCoordinates': [0.15, 51.30]
  },
  {
    'start': '美国西部(俄勒冈)',
    'end': '深圳',
    'startCoordinates': [-122.1, 42.9],
    'endCoordinates': [114.07, 22.62]
  },
  {
    'start': '美国东部(俄亥俄)',
    'end': '上海',
    'startCoordinates': [-82.90, 40.41],
    'endCoordinates': [121.48, 31.22]
  },
  {
    'start': '美国东部(弗吉尼亚北部)',
    'end': '宁夏',
    'startCoordinates': [-76.16, 38.53],
    'endCoordinates': [104.17, 35.14]
  },
  {
    'start': '中国(宁夏)',
    'end': '北京',
    'startCoordinates': [104.17, 35.14],
    'endCoordinates': [108.479, 23.1152]
  },
  {
    'start': '欧洲(爱尔兰)',
    'end': '巴黎',
    'startCoordinates': [-8.24389, 53.41291],
    'endCoordinates': [2.20, 48.51]
  },
  {
    'start': '亚太区域(东京)',
    'end': '洛杉矶',
    'startCoordinates': [139.69, 35.68],
    'endCoordinates': [-118.15, 34.03]
  },
  {
    'start': '亚太区域(悉尼)',
    'end': '亚太区域(东京)',
    'startCoordinates': [151.12, -33.51],
    'endCoordinates': [139.69, 35.68]
  },
  {
    'start': '亚太区域(首尔)',
    'end': '新加坡',
    'startCoordinates': [126.58, 37.33],
    'endCoordinates': [103.51, 1.18]
  },
  {
    'start': '亚太区域(新加坡)',
    'end': '台北',
    'startCoordinates': [103.51, 1.18],
    'endCoordinates': [119.18, 20.45]
  }
];
const newArr = arr.map((n, i, a) => {
    let tmp = a.slice(0, i);
    let startCoordinates = n.startCoordinates.toString();
    if (tmp.some(e => e.endCoordinates.toString() === startCoordinates)) {
        n.startFlag = true;
    }
    return n;
});
console.log(newArr);
var s = arr.join(",") + ",";
        console.log(s)
        for (var i = 0; i < arr.length; i++) {
            if (s.replace(arr[i] + ",", "").indexOf(arr[i] + ",") > -1) {
                console.log(arr[i]);
            }
        }
});

图片描述

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏