使用const token = response.json().token;
我可以获得以下JSON:
{
"token": "*********",
"roles": [
{
"id": 4,
"name": "User",
"pivot": {
"user_id": 1,
"role_id": 4
}
}
]
}
我希望能够以角色的形式访问角色中的名称。
答案 0 :(得分:1)
如果您只想访问角色数组,假设您使用的是传统的响应对象,则可以像其他用户所说的那样访问它:
var roles = response.json().roles
当我重读问题和评论时,我认为用户想要像列表一样访问角色中的名称。假设这样,map函数可以很好地完成这个任务:
// Assuming we store response in "data"
var data = response.json();
var names = data.roles.map(function(role){return role.name});
console.log(names);
// Then "names" will look like ["User",...]
简而言之,map将遍历它所调用的数组并对其运行提供的函数,第一个参数是它在数组中看到的当前值。此功能可以如上所述定义,或者如果逻辑复杂或重复使用,则预定义并传递。
这是Map及其兄弟Reduce的常用用法。两者通常用于将复杂的可变长度数据提取到更简单的形式。
地图记录: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
更新:看来原来的问题是关于ES6的问题,所以这里是"正确的"带有正确声明和箭头功能的ES6版本:
// Assuming we store response in "data"
const data = response.json();
const names = data.roles.map(role => role.name);
console.log(names);
// Then "names" will look like ["User",...]