使用键筛选javascript对象

使用键筛选javascript对象,javascript,json,ecmascript-6,Javascript,Json,Ecmascript 6,我有一个像这样的javascript对象 { apple: { .... }, orange: { ... }, mango: { ... }, jackfruit: { ... } } 我想从这个对象生成一个新对象。我只需要cetain键的值,比如['mango',apple'] 是否有任何筛选器函数可以使用此数组从此对象中筛选这些项 我的结果对象应该是 { mango: { ... } apple: { ... } } 是否有任何筛选函数从该对象筛选这些项 使用这

我有一个像这样的javascript对象

{
  apple: { .... },
  orange: { ... },
  mango: { ... },
  jackfruit: { ... }
}
我想从这个对象生成一个新对象。我只需要cetain键的值,比如
['mango',apple']
是否有任何筛选器函数可以使用此数组从此对象中筛选这些项

我的结果对象应该是

{
  mango: { ... }
  apple: { ... }
}
是否有任何筛选函数从该对象筛选这些项 使用这个数组

是的,您可以使用
reduce
方法

let dict={
苹果:{颜色:'红色'},
橙色:{color:'orange'},
芒果:{颜色:'green'},
菠萝蜜:{颜色:'黄色'}
}
让数组=['mango','apple']

log(array.reduce((obj,key)=>({…obj,[key]:dict[key]}),{})
您可以在数组上使用
forEach
循环,以便在
fruitsObj

var-sobj={
苹果:{rate:100},
橙色:{速率:200},
芒果:{比率:300},
菠萝蜜:{比率:400}
}
var filterary=['mango','apple'];
var-res=[];
filteray.forEach((水果)=>res.push(水果[fruitsObj]);

控制台日志(res)您可以分散单个对象并将其分配给新对象

函数减法(对象、键){
返回Object.assign({},…keys.map(key=>({[key]:Object[key]}));
}
var水果={苹果:'a',橙子:'o',芒果:'m',菠萝蜜:'j'};

log(减法(水果,['芒果','橙色])您可以像这样过滤特定键的数据

var FilteredObjectsByKeys = Object.assign({}, ...['mango', 'apple'].map(x => fruits[x]));

如果你能使用拉姆达图书馆

R.pick(['a', 'd'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1, d: 4}
R.pick(['a', 'e', 'f'], {a: 1, b: 2, c: 3, d: 4}); //=> {a: 1}


试试这个:

var jsObj={
苹果:“苹果”,
橙色:“橙色”,
芒果:“芒果”,
菠萝蜜:“菠萝蜜”
}
var arr=['芒果','苹果'];
var newObj={};
arr.filter(item=>newObj[item]=jsObj[item]);

console.log(newObj)
Object.keys(obj).filter(r=>['mango','apple'].indexOf(r)>-1).map(i=>obj[i])应该足够了。@Pranav,它对你有用吗?@briosheje它不起作用。它返回一组芒果和苹果的值,这的确是一个聪明的方法。