Angularjs сплит массив - PullRequest
       2

Angularjs сплит массив

0 голосов
/ 08 ноября 2018

У меня есть массив, который выглядит так

    $scope.A = [

          [ "1.31069258855609,103.848649478524", "1.31138534529796,103.848923050526" ],
          [ "1.31213221536436,103.848328363879", "1.31288473199114,103.849575392632" ]

        ];

Я хочу сделать из этого нечто подобное

        $scope.B = [
           [
             [1.31069258855609,103.848649478524], [1.31138534529796,103.848923050526]
           ],
           [
             [1.31213221536436,103.848328363879], [1.31288473199114,103.849575392632]
           ]
         ];

PS: Извините, если это не разделение, я не уверен, как решить эту проблему как

Код:

    var latlngs = $scope.polyLineCord.map(subarr => subarr.map(str => str.split(',').map(Number)))
    console.log(latlngs)

enter image description here

Ответы [ 2 ]

0 голосов
/ 08 ноября 2018

Функция для выполнения работы:

function splitMyArray(arr) {
    for (var i = 0; i < arr.length; ++i) {
        var line = arr[i];
        for (var k = 0; k < line.length; ++k) {
            var parts = line[k].split(',');
            line[k] = [parseFloat(parts[0]), parseFloat(parts[1])];
        }
    }
    return arr;
}

Пример использования:

var myArr = [
    ["1.31,103.84", "1.32,103.85"],
    ["1.39,103.77", "1.40,103.78"]
];

var splitted = splitMyArray(myArr);
console.log(splitted);
0 голосов
/ 08 ноября 2018

map каждый элемент во внешнем массиве, затем .map каждый подмассив, split запятыми и map снова на Number для преобразования строк в числа:

const input = [
  ["1.31069258855609,103.848649478524", "1.31138534529796,103.848923050526"],
  ["1.31213221536436,103.848328363879", "1.31288473199114,103.849575392632"]
];
console.log(
  input.map(
    subarr => subarr.map(
      str => str.split(',').map(Number)
    )
  )
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...