javascript - 从具有新值Angular / Ionic 3的现有对象创建新对象
问题描述
我正在开发一个使用 Angular 的 Ionic 3 项目。
我有一个如下所示的 JSON 对象,称为 person。但是,我有一个 Ionic 切换按钮,它可以根据人返回的内容启用各个部分。
person = { name: "peter", job: "programmer", home: "somewhere"};
person_checked_values = {}
为了更新我的切换,我需要传递一个布尔值。钥匙是一样的。如何根据 person KEYs 返回的内容动态构建一个新对象,但将值设置为 true 以便 person_checked_values 结果如下所示?
person_checked_values = { name: true, job: true, home: true};
我试图 foreach 循环人并从中创建一个新对象,但一直不确定和难倒。FWIW - 我也在使用 _lodash 所以如果有可能使用该库的帮助,它是可用的。
解决方案
您可以使用Object.keys
来获取所有密钥。然后,您可以将其与.reduce
数组的功能结合起来构建一个对象。
let person = {
name: "peter",
job: "programmer",
home: "somewhere"
};
let result = Object.keys(person).reduce((obj, key) => {
obj[key] = true;
return obj;
}, {})
console.log(result);
推荐阅读
- reactjs - 使用 ReactJS 声明函数组件时
- r - 在 R 中创建计算矩阵
- javascript - React 中的 MathJax,如何确保在 Latex 中正确渲染页面的更新?
- python-3.x - 带有布尔数组的 groupby,例如 a.groupby([True, True])
- unix - 使用 `sed` 从 JSON 数组中删除所有元素
- gcc - 在可重定位 ELF 符号表中“取消定义”符号的工具
- python - 来自数据文件的二维直方图
- r - 为什么 dput 比原来的精度更高?
- delphi - 如何以编程方式禁用网络连接属性中的特定项目?
- java - JavaCV 如何检查 OpenCVFrameGrabber 是否可用