我有一个具有以下形式的对象:
const obj = {
abc: "Moon",
def: "Earth",
asd: "Sun",
dmg: "Venus",
xyz: "Mars",
tuv: "Jupiter"
};
以及具有以下形式的数组:
const arr = ["abc", "def", "tuv"];
我想根据obj
中给出的值来过滤arr
。这意味着,有一种可能使用filter方法的方法,将obj
变成了这样:
const newObj = {
abc: "Moon",
def: "Earth",
tuv: "Jupiter"
};
答案 0 :(得分:7)
您可以映射具有所需属性的新对象,然后将所有对象分配给单个对象。
const
object = { abc: "Moon", def: "Earth", asd: "Sun", dmg: "Venus", xyz: "Mars", tuv: "Jupiter" },
array = ["abc", "def", "tuv"],
result = Object.assign(...array.map(k => ({ [k]: object[k] })));
console.log(result);
答案 1 :(得分:6)
您可以使用.reduce()
创建结果对象:
const arr = ["abc", "def", "tuv"];
const obj = {
abc: "Moon",
def: "Earth",
asd: "Sun",
dmg: "Venus",
xyz: "Mars",
tuv: "Jupiter"
};
const result = arr.reduce((r, c) => (r[c] = obj[c], r), {});
console.log(result);