javascript - 从对象数组中,获取特定属性
问题描述
我有具有以下结构的 JavaScript 对象数组:
let users = [{
"id": 9,
"name": "Sulaymon",
"family": "Yahyaei",
"email": "sulaymonhg@etlgr.com",
"tel": "(91) 247-52-15",
"isActive": 0,
"level": "User",
"email_verified_at": null,
"created_at": "2019-10-30 04:56:18",
"updated_at": "2019-10-30 04:56:18"
}, {
"id": 8,
"name": "Rasul",
"family": "Irmatov",
"email": "Rasul@etlgr.com",
"tel": "(91) 524-57-96",
"isActive": 0,
"level": "User",
"email_verified_at": null,
"created_at": "2019-10-24 12:28:45",
"updated_at": "2019-10-24 12:28:45"
}]
我从我的 Column 对象中获取对象数组:
let columns = [
{label: 'Name', name: 'name', show: true},
{label: 'Family', name: 'family', show: true},
{label: 'Email', name: 'email', show: true},
{label: 'Telephone', name: 'tel', show: true},
{label: 'Level', name: 'level', show: true},
{label: 'Date Added', name: 'created_at', show: false},
{label: 'Email Verification', name: 'email_verified_at',show: false},
{label: 'Updated At', name: 'updated_at', show: false},
{label: 'Status', name: 'isActive', show: false},
];
如果显示属性应该为真,那么得到它,结果应该是这样的:
let userData = [{
"name": "Sulaymon",
"family": "Yahyaei",
"email": "sulaymonhg@etlgr.com",
"tel": "(91) 247-52-15",
"level": "User"
}, {
"name": "Rasul",
"family": "Irmatov",
"email": "Rasul@etlgr.com",
"tel": "(91) 524-57-96",
"level": "User"
}]
我该怎么办???
解决方案
let users = [{
"id": 9,
"name": "Sulaymon",
"family": "Yahyaei",
"email": "sulaymonhg@etlgr.com",
"tel": "(91) 247-52-15",
"isActive": 0,
"level": "User",
"email_verified_at": null,
"created_at": "2019-10-30 04:56:18",
"updated_at": "2019-10-30 04:56:18"
}, {
"id": 8,
"name": "Rasul",
"family": "Irmatov",
"email": "Rasul@etlgr.com",
"tel": "(91) 524-57-96",
"isActive": 0,
"level": "User",
"email_verified_at": null,
"created_at": "2019-10-24 12:28:45",
"updated_at": "2019-10-24 12:28:45"
}]
let columns = [
{label: 'Name', name: 'name', show: true},
{label: 'Family', name: 'family', show: true},
{label: 'Email', name: 'email', show: true},
{label: 'Telephone', name: 'tel', show: true},
{label: 'Level', name: 'level', show: true},
{label: 'Date Added', name: 'created_at', show: false},
{label: 'Email Verification', name: 'email_verified_at',show: false},
{label: 'Updated At', name: 'updated_at', show: false},
{label: 'Status', name: 'isActive', show: false},
];
let userData = [];
users.forEach(user => {
var obj = {};
columns.forEach(col => {
if (col.show) {
obj[col.name] = user[col.name]
}
});
userData.push(obj);
});
console.log(userData);
推荐阅读
- java - java.io.StreamCorruptedException:在子进程和父进程通信时写入子进程中的标准输出时流标头无效,ProcessBuilder
- reporting-services - SSRS 自定义代码
- youtube-api - YouTube 更改频道横幅
- c# - 命令/查询模式差异
- android - OnClick 事件未在 ViewPager 内的片段中触发
- mysql - 无法连接到 mysql 服务器 127.0.0.1
- vba - 用 textbox1.value 填充表格范围
- ios - 在 WKWebView 中检测 Youtube 播放按钮操作
- c# - 如何打开一个 cmd 窗口并让它通过 C# 中的进程 ID 杀死一个进程?
- android - HTTP 调用 404?