获取数组所有对象中某个key对应的值

let arr = [
{
    "companyPk":1,
    "pk":1,
    "role":"角色1"
},{
    "companyPk":2,
    "pk":2,
    "role":"角色2"
},{
    "companyPk":3,
    "pk":3,
    "role":"角色3"
}
]

怎么获取数组对象中所有的role的值呢?
//角色1,角色2,角色3

阅读 11.6k
3 个回答
const result = arr.map(i => i.role)

result即为role值组成的数组

额,直接遍历拿就行了,你想怎么拿法?

let arr = [
{
    "companyPk":1,
    "pk":1,
    "role":"角色1"
},{
    "companyPk":2,
    "pk":2,
    "role":"角色2"
},{
    "companyPk":3,
    "pk":3,
    "role":"角色3"
}
]
let newArr = arr.map(item=>item.role)
let roles = newArr.join(',') //角色1,角色2,角色3

如果要去重,

arr.reduce((acc, {role}) => {
  if (!acc.includes(role)) acc.push(role);
  return acc;
}, []);

这是 reduce 方法。

[...new Set(arr.map(i => i.role))]

这是利用 Set 唯一值和扩展运算符(...的方法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题