Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从对象数组中获取特定属性_Javascript_Vue.js_Ecmascript 6 - Fatal编程技术网

Javascript 从对象数组中获取特定属性

Javascript 从对象数组中获取特定属性,javascript,vue.js,ecmascript-6,Javascript,Vue.js,Ecmascript 6,我有如下结构的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, "create

我有如下结构的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"
}]
我从我的列对象中获取对象数组:

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},
];
如果show属性应为true,则获取它 结果应该是这样的:

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"
}]
我该怎么办?

让用户=[{
“id”:9,
“姓名”:“苏莱蒙”,
“家庭”:“亚海艾”,
“电子邮件”:sulaymonhg@etlgr.com",
“电话”:(91)247-52-15,
“isActive”:0,
“级别”:“用户”,
“电子邮件地址”:空,
“创建时间”:“2019-10-30 04:56:18”,
“更新时间”:“2019-10-30 04:56:18”
}, {
“id”:8,
“名称”:“Rasul”,
“家庭”:“伊尔马托夫”,
“电子邮件”:Rasul@etlgr.com",
“电话:”(91)524-57-96“,
“isActive”:0,
“级别”:“用户”,
“电子邮件地址”:空,
“创建时间”:“2019-10-24 12:28:45”,
“更新时间:2019-10-2412:28:45”
}]
让列=[
{label:'Name',Name:'Name',show:true},
{标签:'Family',名称:'Family',show:true},
{标签:'Email',名称:'Email',show:true},
{标签:'Telephone',名称:'tel',show:true},
{label:'Level',name:'Level',show:true},
{标签:'Date Added',名称:'created_at',show:false},
{标签:'Email-Verification',名称:'Email\u-verified\u-at',show:false},
{标签:'Updated At',名称:'Updated_At',show:false},
{标签:'Status',名称:'isActive',show:false},
];
让userData=[];
users.forEach(user=>{
var obj={};
columns.forEach(col=>{
如果(col.show){
obj[col.name]=用户[col.name]
}
});
用户数据推送(obj);
});

console.log(userData)
您可以尝试使用
map
filter
获得如下结果

let users=[{“id”:9,“name”:“Sulaymon”,“family”:“Yahyaei”,“email”:sulaymonhg@etlgr.com“,”电话“:”91)247-52-15“,”isActive“:0,“级别“:”用户“,”电子邮件地址“:null“,”创建地址“:”2019-10-30 04:56:18“,”更新地址“:”2019-10-30 04:56:18“,”id“:8,“姓名“:”拉苏尔“,”家人“:”伊尔马托夫“,”电子邮件“:”Rasul@etlgr.com“,”电话“:”(91)524-57-96“,“isActive”:0,“级别”:“用户”,“电子邮件验证地址”:null,“创建地址”:“2019-10-24 12:28:45”,“更新地址”:“2019-10-24 12:28:45”}]
,columnsToShow=[{label:'Name',Name:'Name',show:true},{label:'Family',Name:'true},{label:'Email',Name:'Email',show:true},{label:'tel',show:true},{label:'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},
].filter(d=>d.show).map(d=>d.name)
让result=users.map(d=>Object.assign(…columnsToShow.map(c=>({[c]:d[c]})))
console.log(结果)
让用户=[{
“id”:9,
“姓名”:“苏莱蒙”,
“家庭”:“亚海艾”,
“电子邮件”:sulaymonhg@etlgr.com",
“电话”:(91)247-52-15,
“isActive”:0,
“级别”:“用户”,
“电子邮件地址”:空,
“创建时间”:“2019-10-30 04:56:18”,
“更新时间”:“2019-10-30 04:56:18”
},
{
“id”:8,
“名称”:“Rasul”,
“家庭”:“伊尔马托夫”,
“电子邮件”:Rasul@etlgr.com",
“电话:”(91)524-57-96“,
“isActive”:0,
“级别”:“用户”,
“电子邮件地址”:空,
“创建时间”:“2019-10-24 12:28:45”,
“更新时间:2019-10-2412:28:45”
}];
让列=[
{label:'Name',Name:'Name',show:true},
{标签:'Family',名称:'Family',show:true},
{标签:'Email',名称:'Email',show:true},
{标签:'Telephone',名称:'tel',show:true},
{label:'Level',name:'Level',show:true},
{标签:'Date Added',名称:'created_at',show:false},
{标签:'Email-Verification',名称:'Email\u-verified\u-at',show:false},
{标签:'Updated At',名称:'Updated_At',show:false},
{标签:'Status',名称:'isActive',show:false},
];
users.map((用户)=>{
返回columns.filter(column=>column.show).reduce((acc,column)=>{
acc[column.name]=用户[column.name];
返回acc;
}, {});

})
我希望这是你发布的虚构数据。@sulaymon ilhom,如果这能解决你的问题,请告诉我