使用Js实现现在有⽤户的⾓⾊有数组,如:[{id:1,name:’经理’},{id:2,name:’员⼯’}],⽤户已选择的数组[{id:2,name:’经理’}], 要求获取⽤户未 选中的⾓⾊列表,和⽤户已选择的⾓⾊的id数组。(使⽤es6语法实现)
时间: 2024-02-12 21:04:35 浏览: 16
可以使用以下代码实现:
```javascript
const roles = [{id:1,name:'经理'},{id:2,name:'员工'}];
const selectedRoles = [{id:2,name:'经理'}];
const unselectedRoles = roles.filter(role => !selectedRoles.find(selectedRole => selectedRole.id === role.id));
const selectedRoleIds = selectedRoles.map(role => role.id);
console.log(unselectedRoles); // [{id:1,name:'经理'}]
console.log(selectedRoleIds); // [2]
```
首先定义了角色数组 `roles` 和已选择角色数组 `selectedRoles`。然后使用 `filter()` 和 `find()` 方法分别筛选出未选中的角色和已选中角色的 id 数组。最后使用 `console.log()` 打印结果。
相关问题
使用Js实现现在有⽤户的⾓⾊有数组,如:[{id:1,name:’经理’},{id:2,name:’员⼯’}],⽤户已选择的数组[{id:2,name:’经理’}], 要求获取⽤户未 选中的⾓⾊列表,和⽤户已选择的⾓⾊的id数组。(使⽤es6语法实现)
这是一道比较基础的 JavaScript 题目,可以使用一些数组方法来解决。
```javascript
const roles = [{id: 1, name: '经理'}, {id: 2, name: '员工'}];
const selectedRoles = [{id: 2, name: '经理'}];
const unselectedRoles = roles.filter(role => !selectedRoles.some(selectedRole => selectedRole.id === role.id));
const selectedRoleIds = selectedRoles.map(selectedRole => selectedRole.id);
console.log(unselectedRoles); // [{id: 1, name: '经理'}]
console.log(selectedRoleIds); // [2]
```
首先定义了角色数组 `roles` 和已选择角色数组 `selectedRoles`。然后使用 `filter()` 方法过滤出未选中的角色,使用 `some()` 方法在已选择角色中查找是否存在该角色,若不存在则保留该角色。最后使用 `map()` 方法提取已选择角色的 id 数组。
⾓⾊列表,和⽤户已选择的⾓⾊的id数组。(使⽤es6语法实现)
以下是一个使用ES6语法实现的角色列表和已选择角色ID数组的例子:
```javascript
// 角色列表
const roles = [
{id: 1, name: '管理员'},
{id: 2, name: '普通用户'},
{id: 3, name: '游客'}
];
// 已选择的角色ID数组
const selectedRoleIds = [1, 3];
// 根据已选择的角色ID数组获取已选择的角色对象数组
const selectedRoles = roles.filter(role => selectedRoleIds.includes(role.id));
console.log(selectedRoles);
// 输出结果为: [{id: 1, name: '管理员'}, {id: 3, name: '游客'}]
```
在上述代码中,我们使用了ES6的箭头函数和数组方法filter来实现根据已选择的角色ID数组获取已选择的角色对象数组。箭头函数的语法简洁,filter方法可以根据回调函数的返回值过滤出符合条件的元素,includes方法用于判断数组是否包含某个元素。