Javascript 阵列图&;reduce显示未定义的值
我有两个名为Javascript 阵列图&;reduce显示未定义的值,javascript,arrays,vue.js,vuejs2,Javascript,Arrays,Vue.js,Vuejs2,我有两个名为headersMap和selected\u arr的数组,如下所示 headersMap: [ { text: "#", align: "center", sortable: true, value: "id", align: "start", width: "1%", }, {
headersMap
和selected\u arr
的数组,如下所示
headersMap: [
{
text: "#",
align: "center",
sortable: true,
value: "id",
align: "start",
width: "1%",
},
{
text: "Name",
align: "center",
sortable: true,
value: "name",
align: "start",
},
{
text: "Company",
align: "center",
sortable: true,
value: "company",
align: "start",
}
]
我的尝试如下:
let jsonObject = this.headersMap;
let selectedArray = this.selected_arr;
let filteredJsonObject = jsonObject.map(function(entry) {
return selectedArray.reduce(function(res, key) {
res[key] = entry[key];
return res;
}, {});
});
console.log(filteredJsonObject);
[
{
text: "#",
align: "center",
sortable: true,
value: "id",
align: "start",
width: "1%",
},
{
text: "Company",
align: "center",
sortable: true,
value: "company",
align: "start",
}
]
输出:
[
{
#: undefined
company: undefined
}
]
问题:我想通过selected\u arr
减少headersMap
,输出应如下所示:
let jsonObject = this.headersMap;
let selectedArray = this.selected_arr;
let filteredJsonObject = jsonObject.map(function(entry) {
return selectedArray.reduce(function(res, key) {
res[key] = entry[key];
return res;
}, {});
});
console.log(filteredJsonObject);
[
{
text: "#",
align: "center",
sortable: true,
value: "id",
align: "start",
width: "1%",
},
{
text: "Company",
align: "center",
sortable: true,
value: "company",
align: "start",
}
]
使用:
const
headersMap=[
{text:#,align:“center”,sortable:true,value:“id”,align:“start”,width:“1%”,
{text:“Name”,align:“center”,sortable:true,value:“Name”,align:“start”},
{text:“Company”,align:“center”,sortable:true,value:“Company”,align:“start”}
],
选定的_arr=['id','company'];
const filtered=headersMap.filter(({value})=>selected_arr.includes(value));
console.log(过滤)代码>