Kal*_*nik 3 javascript arrays object filter
我有一个具有这种形式的对象:
const obj = {
abc: "Moon",
def: "Earth",
asd: "Sun",
dmg: "Venus",
xyz: "Mars",
tuv: "Jupiter"
};
Run Code Online (Sandbox Code Playgroud)
以及这种形式的数组:
const arr = ["abc", "def", "tuv"];
Run Code Online (Sandbox Code Playgroud)
我想obj
根据给出的值进行过滤arr
.这意味着,有没有办法,可能使用过滤方法,obj
变成这样:
const newObj = {
abc: "Moon",
def: "Earth",
tuv: "Jupiter"
};
Run Code Online (Sandbox Code Playgroud)
您可以使用所需属性映射新对象,并将所有对象分配给单个对象.
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);
Run Code Online (Sandbox Code Playgroud)
您可以使用它.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);
Run Code Online (Sandbox Code Playgroud)