我有一个响应,应该使用map返回具有指定键和值的对象
我尝试了
response.data.data = response.data.data.map((user) =>{
return console.log({ user.id : user.name});
});
但是由于user.id
如何设置来自响应的密钥?
这是我的数据回复
data: [
{
id: 2,
name: "Orval McLaughlin",
email: "okoch@example.org",
contacts: "09083692343",
created_at: "2018-09-05 15:08:54",
updated_at: "2018-09-05 15:08:54",
deleted_at: null
}
],
我正在使用vue js输入标签,在其中我需要将数据绑定到prop中 像这样
{2: Orval McLaughlin}
答案 0 :(得分:4)
在映射函数中使用return console.log(whatever)
是没有意义的,因为那样总是返回undefined
.map()
将创建undefined
条目的数组:
let users = [{ id: 1, name: "r2d2" }]
let arr = users.map(user => console.log({ id: user.id, name: user.name}))
console.log(arr);
相反,将您的映射功能更改为此:
let users = [{
id: 2,
name: "Orval McLaughlin",
email: "okoch@example.org",
contacts: "09083692343",
created_at: "2018-09-05 15:08:54",
updated_at: "2018-09-05 15:08:54",
deleted_at: null
}]
let arr = users.map(user => ({ [user.id]: user.name }))
console.log(arr);
要在变量propName
中具有其属性名称的对象上创建属性,请使用方括号表示法:
let user = { [propName]: value }
请注意,您还可以使用以下符号访问对象的属性:
console.log(user[propName]);
答案 1 :(得分:2)
获得类似
的结果{2: Orval McLaughlin}
您想要一个计算所得的属性名称:
return { [user.id] : user.name};
请注意,return console.log(somValue)
始终返回未定义
答案 2 :(得分:0)
console.log()
返回undefined
,因此您当前的解决方案给出了所有undefined
的数组。相反,您应该返回所需的对象:
response.data.data = response.data.data.map((user) =>{
return { [user.id] : user.name};
});
请注意,您还需要用括号将用户ID密钥括起来,以便评估变量。