[英]Coverting array to indexed object in typescript
我有以下类型的数组。
interface IArray {
id: "message1" | "message2" | "message3";
message: string;
}
const myArray: IArray[] = [
{
id: "message1",
message: "Here is your message 1"
},
{
id: "message2",
message: "Here is your message 2"
}
]
我想将其转换为具有以下类型的索引 object。
const myObject = {
message1: "Here is your message 1",
message2: "Here is your message 2"
}
我可以编写一个 function 将数组转换为 object。
const myObject: any = {};
myArray.forEach((arrElement) => {
myObject[arrElement.id] = arrElement.message;
});
但是myObject
的类型是any
。 而我希望myObject
具有索引keys
的类型,具体取决于数组id
类型。
const myArray = [{key: "message1",message: "Here is your message 1"},{key: "message2",message: "Here is your message 2"}] const result = myArray.reduce((a,b)=>{ a[b.key]=b.message; return a }, {}); console.log(result);
您可以使用forEach
方法:
JavaScript:
let myArray = [{ id: "message1", message: "Here is your message 1" }, { id: "message2", message: "Here is your message 2" } ]; let myObject = {}; myArray.forEach(item => { myObject[item.id] = item.message; }); console.log(myObject);
TypeScript:
interface IArray {
id: "message1" | "message2" | "message3";
message: string;
}
const myArray: IArray[] = [{
id: "message1",
message: "Here is your message 1"
},
{
id: "message2",
message: "Here is your message 2"
}
];
let myObject: any = {};
myArray.forEach(item => {
myObject[item.id] = item.message;
});
console.log(myObject);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.