更新时间:2023-12-01 09:26:22
const acl = [{"view":true,"update":true,"remove":true,"userId":1,"username":"Mike"},{"view":true,"update":true,"remove":false,"userId":2,"username":"Joe"},{"view":true,"update":false,"remove":false,"userId":3,"username":"Lim"}]
function multi_dim (array) {
const res = {
view: [],
update: [],
remove: []
}
const keys = Object.keys(array[0])
for (let i = 0; i < array.length; i++) {
keys.forEach(function (key) {
if (key !== 'username' && key !== 'userId') {
if (array[i][key]) {
res[key].push({
username: array[i].username,
userId: array[i].userId
})
}
}
})
}
return res
}
let obj = multi_dim(acl) // returns object. Push to array if so desired
console.log(obj)
// => result
// {
// "view": [
// {
// "username": "Mike",
// "userId": 1
// },
// {
// "username": "Joe",
// "userId": 2
// },
// {
// "username": "Lim",
// "userId": 3
// }
// ],
// "update": [
// {
// "username": "Mike",
// "userId": 1
// },
// {
// "username": "Joe",
// "userId": 2
// }
// ],
// "remove": [
// {
// "username": "Mike",
// "userId": 1
// }
// ]
// }