javascript - 将数组映射到由数组值键控的对象
问题描述
我需要能够根据数组值从对象中删除对象。
我有一个基础对象:
const obj = {
one: {
selected: undefined,
},
two: {
selected: undefined,
},
three: {
selected: undefined,
}
};
示例数组是:
const arr = ['one', 'two'];
我这样做的尝试:
const mappedObj = arr.map(val => {
if (obj[val]) {
return ({
[val]: {
selected: true
},
});
}
return false;
})
我需要它是:
object: {
one: {
selected: true,
},
two: {
selected: true,
}
}
解决方案
您可以映射单个对象并将它们分配给具有Object.assign
数组语法的单个对象。...
var object = { one: { selected: undefined, foo: 42 }, two: { selected: undefined }, three: { selected: undefined } },
array = ['one', 'two'],
result = Object.assign(
...array.map(k => ({ [k]: Object.assign({}, object[k], { selected: true }) }))
);
console.log(result);
推荐阅读
- java - 如何在 SpringMVC 控制器方法中提交或回滚事务
- python - 在 Django 中使用 Pillow 压缩图像
- c++-cli - 无法在 C++/CLI 中数组的 Contains 方法中指定比较器
- laravel - Laravel 5.7 更新部分,无消息错误
- firebase - 如何使用 Firebase 和 Vuejs 获取用户数据
- django - 尝试为 django/heroku 上的博客条目创建删除选项
- python - 从给定索引中选择 3 个(或 n 个)观察值
- postgresql - 根据 JSON 函数参数更新插入适当的字段
- php - PHP - 任务调度程序无法包含以前的目录?
- spring - 应用程序或会话对后台线程不可用