1

下面是我从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]
4

5 回答 5

2

我不明白为什么在数组中需要一个元素(数组的第一个元素)。

如果你真的想要 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 => [x[0],[...x.filter((y, i) => i !== 0)]
]);
console.log(newArr);

于 2019-12-25T11:07:22.323 回答
2

您可以解构数组并获取第一个元素和其余元素进行映射。

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]) => [[first], rest]);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }

于 2019-12-25T11:19:56.450 回答
0

你可以使用splice

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

console.log(traverseArr)

于 2019-12-25T11:06:05.400 回答
0

您可以使用flatMap方法对将由函数创建的平面数组:

const result = arr.flatMap(([a, b, c, d])=> [[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])=> [[a], [b, c, d]]);
console.log(result);

于 2019-12-25T11:14:44.623 回答
0

您提到的结果数组不是二维数组,二维数组的正确格式是:

[[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]);
于 2019-12-25T11:15:26.610 回答