如何将数组数组转换为具有索引签名的对象?
How to transform an array of arrays into an object with index signature?
所以我有两个类型 B 和 A,以及一个数组 a,我应该将其转换为类型 B。
type A = Array<[string, number, string]>;
type B = {
[name: string]:
{
name: string,
age: number,
city: string
}
}
const a: A = [
['name1', 10, 'city1'],
['name2', 33, 'city2'],
['name3', 61, 'city3'],
['name4', 60, 'city4']
];
export const b: B = ???
由于类型 B 中的索引签名 [name: string]
,我不知道如何转换数组。通常我通过 array.map(value => {})
进行转换,但在这里我找不到包含索引的方法地图方法中的签名。
B描述了一个对象的形状:
export const b: B = {
name1: {
name: 'name1',
age: 10,
city: 'city1'
}
};
但是如果你想要一个 B
的数组,你可以
export const b: B[] = a.map(([name, age, city]) => ({ [name]: { name, age, city } }));
所以我有两个类型 B 和 A,以及一个数组 a,我应该将其转换为类型 B。
type A = Array<[string, number, string]>;
type B = {
[name: string]:
{
name: string,
age: number,
city: string
}
}
const a: A = [
['name1', 10, 'city1'],
['name2', 33, 'city2'],
['name3', 61, 'city3'],
['name4', 60, 'city4']
];
export const b: B = ???
由于类型 B 中的索引签名 [name: string]
,我不知道如何转换数组。通常我通过 array.map(value => {})
进行转换,但在这里我找不到包含索引的方法地图方法中的签名。
B描述了一个对象的形状:
export const b: B = {
name1: {
name: 'name1',
age: 10,
city: 'city1'
}
};
但是如果你想要一个 B
的数组,你可以
export const b: B[] = a.map(([name, age, city]) => ({ [name]: { name, age, city } }));