Я не знаком с Javascript, но пытаюсь по существу сопоставить следующее:

Место, где я вижу (5) [Array(2), Array(2), Array(2), Array(2), Array(2)], я хочу быть похожим на другие, где они все разделены.

0
:
(5) [Array(2), Array(2), Array(2), Array(2), Array(2)]
1
:
(2) [-112.2550785337791, 36.07954952145647]
2
:
(2) [-112.2549277039738, 36.08117083492122]
3
:
(2) [-112.2552505069063, 36.08260761307279]
4
:
(2) [-112.2564540158376, 36.08395660588506]
5
:
(2) [-112.2580238976449, 36.08511401044813]
6
:
(2) [-112.2595218489022, 36.08584355239394]
7
:
(2) [-112.2608216347552, 36.08612634548589]
8
:
(2) [-112.262073428656, 36.08626019085147]
9
:
(2) [-112.2633204928495, 36.08621519860091]
10
:
(2) [-112.2644963846444, 36.08627897945274]
11
:
(2) [-112.2656969554589, 36.08649599090644]

У меня есть следующий код:

let parsedGeoCoords = _.flatten(aoiList.map((aoi) => {
  return terraformer.parse(aoi.geo).coordinates
}), true)

Новая попытка? Беспорядочный

let data = [
  [["1", "3"],["2", "5"],["3", "7"]],
  ["4", "5"],
  ["5", "56"]
]
function flatten(arr) {
  return arr.reduce(function (flat, toFlatten) {
    return flat.concat(is2DArray(toFlatten) ? (toFlatten) : [(toFlatten)]);
  }, []);
}

function is2DArray(arr) {
  return Array.isArray(arr[0])
}

console.log(flatten(data))

Входные данные

let data = [
  [["1", "3"],["2",3],["3","5"]],
  ["4", "5"],
  ["5", "56"],
  "4",
  "7"
]

Желание

[ [ '1', '3' ],
  [ '2', 3 ],
  [ '3', '5' ],
  [ '4', '5' ],
  [ '5', '56' ],
  [ '4', '7' ] ]
1
John Lippson 19 Сен 2018 в 20:51

2 ответа

Лучший ответ

Вы можете просто исправить текущий вывод, чтобы он соответствовал вашему желанию. Просто добавь:

var fullFlatten = _.flatten(_.map(data, function(elem) {
   return _.flatten(elem);
}));
var chunks = _.chunk(fullFlatten, 2);
2
mar10 19 Сен 2018 в 18:32

С lodash вы можете просто использовать flattenDeep, а затем chunk:

let data = [  [["1", "3"],["2",3],["3","5"]],  ["4", "5"],  ["5", "56"],  "4",  "7"]

console.log(_.chunk(_.flattenDeep(data), 2)) // with no chaining

// with chaining
console.log( 
   _(data)
   .flattenDeep()
   .chunk(2)
   .value()
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
1
Akrion 25 Сен 2018 в 04:32