在打字稿中交换多维数组中的元素

时间:2020-03-04 16:42:09

标签: javascript typescript

我有一个多维数组,其中包含从后端调用中提取的坐标,这是结构的屏幕截图:

enter image description here

我想交换这些坐标,但是我不知道如何处理。谢谢。

1 个答案:

答案 0 :(得分:0)

完成所需内容的多种方法。一种方法是遍历结构,直到到达要操作的数组。在代码段中,我决定创建一个函数,该函数可以接收原始数据并返回一个新对象。为了“交换”数组的内容,我做了一个.splice(0)来制作数组的副本,然后在其上调用.reverse()来切换顺序。

主要挑战是遍历数据结构-对您当前的结构有一些相当直观的了解(一个坐标对象包含一个名为array的节点-有点令人困惑)

var dataFromTheServer = {
    content: [
        {
            coordinates: {
                coordinates: [
                    [17.25756,31.19192],
                    [15.1821, 40.87555],
                    [33.78433, 18.59314],
                    [17.25756,31.19192]
                ]
            }
        }
    ]
}

function swapEm(data){
  var response = {};
  if(data && data.content){
      response.content = [{coordinates:{coordinates:[]}}];
      for(var item in data.content){
        if(data.content[item] && data.content[item].coordinates && data.content[item].coordinates.coordinates){
            for(var coord in data.content[item].coordinates.coordinates){
                response.content[0].coordinates.coordinates[coord] = data.content[item].coordinates.coordinates[coord].splice(0).reverse()
            }
        }
      }
  }
  
  return response;
}

console.log(dataFromTheServer);
console.log(swapEm(dataFromTheServer))