如何在 TypeScript 中创建从 1 到 N 的数组?
How to create an array from 1 to N in TypeScript?
我想要做的是创建一个从 1 到 N 的数组并将其命名为 first_array
,然后将它与另一个具有相同长度的数组(second array
)组合并创建一个新的数组对象如下所示:
new_array = [
{
"name": "first_array[0]",
"value": second_array[0]
},
{
"name": "first_array[1]",
"value": second_array[2]
},
"name": "first_array[2]",
"value": second_array[2]
];
如果你想要一个从 1 到 N
的数组,你可以创建一个长度为 N
的新数组,用填充值填充它,然后使用它们的索引填充值 .map
.
例如:
const n = 10;
const myArray = new Array(n).fill(null).map((_, i) => i + 1);
myArray
的结果:
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
但是在这种情况下,如果您只是将它与另一个数组一起使用,那么您似乎不需要该数组。相反,您可以使用其他数组 (second_array
) 中的索引作为 "name"
键的值。
像这样:
const newArray = secondArray.map((e, i) => ({
name: i + 1,
value: e,
}));
示例案例:
输入
const secondArray = [100, 200, 300];
结果(newArray
)
[
{ name: 1, value: 100 },
{ name: 2, value: 200 },
{ name: 3, value: 300 }
]
首先创建一个包含最大预期元素数的数组。然后将这个空元素数组缩减为合并后的数组:
let array_1th = [1,2,3,4]
let array_2nd = [5,6,7,8];
let merged = Array(Math.max(array_1th.length, array_2nd.length))
.fill().map((_, i) => ({ name: array_1th[i], value: array_2nd[i] }));
console.log(merged);
上述示例的一个小缺点是会创建两个数组,然后丢弃准备好的空数组。
一个稍微好一点的解决方案是使用 reduce
直接改变输入数组,这样只创建一个数组:
let array_1th = [1,2,3,4]
let array_2nd = [5,6,7,8];
let merged = Array(Math.max(array_1th.length, array_2nd.length)).fill()
.reduce((_, __, i, array) => (array[i] = { name: array_1th[i], value: array_2nd[i] }, array), null);
console.log(merged);
我想要做的是创建一个从 1 到 N 的数组并将其命名为 first_array
,然后将它与另一个具有相同长度的数组(second array
)组合并创建一个新的数组对象如下所示:
new_array = [
{
"name": "first_array[0]",
"value": second_array[0]
},
{
"name": "first_array[1]",
"value": second_array[2]
},
"name": "first_array[2]",
"value": second_array[2]
];
如果你想要一个从 1 到 N
的数组,你可以创建一个长度为 N
的新数组,用填充值填充它,然后使用它们的索引填充值 .map
.
例如:
const n = 10;
const myArray = new Array(n).fill(null).map((_, i) => i + 1);
myArray
的结果:
[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]
但是在这种情况下,如果您只是将它与另一个数组一起使用,那么您似乎不需要该数组。相反,您可以使用其他数组 (second_array
) 中的索引作为 "name"
键的值。
像这样:
const newArray = secondArray.map((e, i) => ({
name: i + 1,
value: e,
}));
示例案例:
输入
const secondArray = [100, 200, 300];
结果(newArray
)
[
{ name: 1, value: 100 },
{ name: 2, value: 200 },
{ name: 3, value: 300 }
]
首先创建一个包含最大预期元素数的数组。然后将这个空元素数组缩减为合并后的数组:
let array_1th = [1,2,3,4]
let array_2nd = [5,6,7,8];
let merged = Array(Math.max(array_1th.length, array_2nd.length))
.fill().map((_, i) => ({ name: array_1th[i], value: array_2nd[i] }));
console.log(merged);
上述示例的一个小缺点是会创建两个数组,然后丢弃准备好的空数组。
一个稍微好一点的解决方案是使用 reduce
直接改变输入数组,这样只创建一个数组:
let array_1th = [1,2,3,4]
let array_2nd = [5,6,7,8];
let merged = Array(Math.max(array_1th.length, array_2nd.length)).fill()
.reduce((_, __, i, array) => (array[i] = { name: array_1th[i], value: array_2nd[i] }, array), null);
console.log(merged);