请你帮助实现下面的输出比较var1和var2,并获得基于var2的输出,其中关键是在字符串的数组提供的
var1 = {a:1, b:2, c:3, d:4};
var2 = ['a', 'd'];
var3 = {a:1, d:4};
const var3 = var2.reduce((acc, cur) => {
if (var1[cur]) {
acc[cur] = var1[cur];
}
return acc;
}, {})
使用 .forEach
var var1 = {a:1,b:2,c:3,d:4}; var var2 =['a','d'];
var var3 = {};
var2.forEach(i=>{
var3[i] = var1[i]
})
console.log(var3)
你可以使用Object.entry和迭代。
var1 = {a:1,b:2,c:3,d:4}; var2 =['a','d'];
o={}
for(let [k,v] of Object.entries(var1)){
var2.forEach(x=>{if(k==x){
o[k]=v
}})
}
console.log(o)
您可以 .map()
各键 var2
到一个包含键和其相关值的对象。从这个映射的数组中,您可以将每个对象分配给一个对象,使用 Object.assign()
:
const var1 = {a:1,b:2,c:3,d:4};
const var2 = ['a','d', 'f'];
const var3 = Object.assign({}, ...var2.map(id => id in var1 ? {[id]: var1[id]} : {}));
console.log(var3);
另一种办法是使用 Object.fromEntries()
如果你能支持它。
const var1 = {a:1,b:2,c:3,d:4};
const var2 = ['a','d', 'f'];
const var3 = Object.fromEntries(var2.filter(id => id in var1).map(id => [id, var1[id]]));
console.log(var3);