如何使用打字稿将地图值存储到数组的第一个位置?
How to store map values into an array to its first position using typescript?
我有一张地图,想将地图值存储到一个数组中,但只存储到它的第一个位置。
我的地图是:
this.mapValues.set("1","First");
this.mapValues.set("2","Second");
this.mapValues.set("3","Third");
然后我想让它转换成以下形式:
[{1:First, 2: Second, 3: Third}]
不确定此处所需的功能。为什么完全使用 Map
只是为了稍后将其转换为包含在数组中的对象。
不过,您可以将 Array#reduce
与 Array#from
和传播语法一起使用,以将地图转换为对象。然后将其封装在一个数组中。
let mapValues = new Map();
mapValues.set("1","First");
mapValues.set("2","Second");
mapValues.set("3","Third");
const arr = [Array.from(mapValues).reduce((acc, curr) => ({
...acc,
[curr[0]]: curr[1]
}), Object.create(null))];
console.log(arr);
注意:Map
s 可以有非字符串键,对象文字不能。然而,在您的情况下,这应该不是问题。
编辑:当 Object#fromEntries
不可用时替代其他解决方案。
我觉得像
const myarray = [Object.fromEntries(this.mapValues)]
随心所欲
我不确定所有地图都可以转换为对象,因为地图可以将任何类型的值作为键,但对于您的示例,它应该可以工作。
我有一张地图,想将地图值存储到一个数组中,但只存储到它的第一个位置。 我的地图是:
this.mapValues.set("1","First");
this.mapValues.set("2","Second");
this.mapValues.set("3","Third");
然后我想让它转换成以下形式:
[{1:First, 2: Second, 3: Third}]
不确定此处所需的功能。为什么完全使用 Map
只是为了稍后将其转换为包含在数组中的对象。
不过,您可以将 Array#reduce
与 Array#from
和传播语法一起使用,以将地图转换为对象。然后将其封装在一个数组中。
let mapValues = new Map();
mapValues.set("1","First");
mapValues.set("2","Second");
mapValues.set("3","Third");
const arr = [Array.from(mapValues).reduce((acc, curr) => ({
...acc,
[curr[0]]: curr[1]
}), Object.create(null))];
console.log(arr);
注意:Map
s 可以有非字符串键,对象文字不能。然而,在您的情况下,这应该不是问题。
编辑:当 Object#fromEntries
不可用时替代其他解决方案。
我觉得像
const myarray = [Object.fromEntries(this.mapValues)]
随心所欲
我不确定所有地图都可以转换为对象,因为地图可以将任何类型的值作为键,但对于您的示例,它应该可以工作。