Ниже приведены мои данные, которые я получаю из API, и я хочу сгруппировать их как время в одном индексе, а другие значения — в другом индексе. Возможно ли разделить это? Я хочу, чтобы массив был в формате как значения во втором формате массива

Данные API

0: (5) [1577080200000, 157.5599, 157.4902, 157.495, 78330] 1: (5) [1577080500000, 157.54, 157.485, 157.5128, 118202] 2: (5) [1577080800000, 157.54, 157.47, 157.48, 130805] 

Ожидаемый результат

 [1577080200000][157.5599, 157.4902, 157.495, 78330] [1577080500000][157.54, 157.485, 157.5128, 118202] [1577080800000][157.54, 157.47, 157.48, 130805] 

Вы можете деструктурировать массив и взять первый элемент, а остальные — для отображения.

 var data = [[1577080200000, 157.5599, 157.4902, 157.495, 78330], [1577080500000, 157.54, 157.485, 157.5128, 118202], [1577080800000, 157.54, 157.47, 157.48, 130805]], result = data.map(([first, ...rest]) ={amp}gt; [[first], rest]); console.log(result); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

Я не понимаю, зачем вам нужен один элемент (первый элемент массивов) внутри массива.

Если вы действительно хотите 2 отдельных массива, один для первого элемента и один для остальных, просто добавьте дополнительную оболочку массива вокруг [x[0]]

 const arr = [ [1577080200000, 157.5599, 157.4902, 157.495, 78330], [1577080500000, 157.54, 157.485, 157.5128, 118202], [1577080800000, 157.54, 157.47, 157.48, 130805], ] const newArr = arr.map(x ={amp}gt; [x[0],[...x.filter((y, i) ={amp}gt; i !== 0)] ]); console.log(newArr); 

Вы можете использовать splice :

 const arr = [1577080200000, 157.5599, 157.4902, 157.495, 78330] const traverseArr = [arr.splice(0,1),arr] console.log(traverseArr) 

Ваш массив результатов, который вы упомянули, не является двухмерным массивом, правильный формат двухмерного массива:

 [[1577080800000], [157.54, 157.47, 157.48, 130805]] 

Тем не менее, вы можете получить ожидаемый результат в двумерном массиве с помощью следующего кода:

 function splitArray(arr: any[]) { const first = arr.slice(0, 1); const tail = arr.slice(1); return [first, tail]; } 

а затем вызвать функцию следующим образом:

 splitArray([1577080200000, 157.5599, 157.4902, 157.495, 78330]); 

Вы можете использовать метод flatMap для flatMap плоского массива, который будет создан функцией:

 const result = arr.flatMap(([a, b, c, d])={amp}gt; [[a], [b, c, d]]); 

Пример:

 const arr = [ [1577080200000, 157.5599, 157.4902, 157.495, 78330], [1577080500000, 157.54, 157.485, 157.5128, 118202], [1577080800000, 157.54, 157.47, 157.48, 130805], ] const result = arr.flatMap(([a, b, c, d])={amp}gt; [[a], [b, c, d]]); console.log(result);