Arrays 如何按字符串数组筛选对象字段

Arrays 如何按字符串数组筛选对象字段,arrays,object,filter,Arrays,Object,Filter,如何通过字符串数组过滤对象的字段 例如 试试这个: 注意:考虑到字符串是数字,这也适用于字符串数组。 var catValues={ "1":{ 数值:10, 代码:5 }, "3":{ 数值:10, 代码:5 }, "5":{ 数值:10, 代码:5 } } 选择的变量=['1','5']; 常量func=(选定,catValues)=>{ var ch={}; selected.map(selected=>{ 如果(在catValues中选择){ ch[CHOITE]=catValues[

如何通过字符串数组过滤对象的字段

例如

试试这个:

注意:考虑到字符串是数字,这也适用于字符串数组。

var catValues={
"1":{
数值:10,
代码:5
},
"3":{
数值:10,
代码:5
},
"5":{
数值:10,
代码:5
}
}
选择的变量=['1','5'];
常量func=(选定,catValues)=>{
var ch={};
selected.map(selected=>{
如果(在catValues中选择){
ch[CHOITE]=catValues[CHOITE]
}
})
返回ch
}

log(func(selected,catValues))
创建一个新对象并仅插入所选的cat值

var chosenCatValues = {};

for (var cat of chosenCats) {
  chosenCatValues[cat] = catValues[cat];
} 
或者您可以使用和:

演示:
var catValues={
"1": {
数值:10,
代码:5
},
"3": {
数值:10,
代码:5
},
"5": {
数值:10,
代码:5
}
};
变量chosenCats=[“1”,“5”];
var chosenCatValues=Object.keys(catValues)
.filter(key=>chosenCats.includes(key))
.reduce((对象,键)=>{
obj[键]=catValues[键];
返回obj;
}, {});
console.log(chosenCatValues)
var chosenCatValues = {};

for (var cat of chosenCats) {
  chosenCatValues[cat] = catValues[cat];
} 
var chosenCatValues = Object.keys(catValues)
  .filter(key => chosenCats.includes(key))
  .reduce((obj, key) => {
    obj[key] = catValues[key];
    return obj;
  }, {});