我有一个像这样荒谬的对象.
{
order: ["a1","a2","a3","a4"],
posts: {
a1: {id: "a1",message: "This is a1"},
a4: {id: "a4",message: "This is a4"},
a3: {id: "a3",message: "This is a3"},
a2: {id: "a2",message: "This is a2"},
}
}
Run Code Online (Sandbox Code Playgroud)
我需要从"posts"对象获取"message"值,其顺序为"order"数组中定义的顺序.我可以预先处理"order"数组,但是如何知道我什么时候有"a1"字符串,我需要在"posts"对象中取"a1"对象?
谢谢!
您所要做的就是映射order数组并使用括号表示法返回基于键的对象
const data = {
order: ["a1","a2","a3","a4"],
posts: {
a1: {id: "a1",message: "This is a1"},
a4: {id: "a4",message: "This is a4"},
a3: {id: "a3",message: "This is a3"},
a2: {id: "a2",message: "This is a2"},
}
}
const res = data.order.map((id) => {
return data.posts[id];
})
console.log(res);Run Code Online (Sandbox Code Playgroud)