javascript – 对象数组:为每个具有值的指定键创建新对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 对象数组:为每个具有值的指定键创建新对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2559字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 对象数组:为每个具有值的指定键创建新对象](/upload/InfoBanner/zyjiaocheng/728/399912a8de274abdbbe521821310a00d.jpg)
我有一个从CSV文件中提取的对象数组,如下所示:
const data = [
{ name: 'p1', 'date started': 'April 2007', Houston: '375', Dallas: '508', Austin: '', 'El Paso': '1232' },
{ name: 'p2', 'date started': 'April 2017', Houston: '', Dallas: '', Austin: '', 'El Paso': '43' },
{ name: 'p3', 'date started': 'June 2012', Houston: '18789', Dallas: '', Austin: '8977', 'El Paso': '6754656' },
{ name: 'p4', 'date started': 'December 2015', Houston: '878', Dallas: '4556', Austin: '987', 'El Paso': '1456232' }
]
我正在创建一些数据的图表和表格,并且需要创建两个新的键,“location”和“value”,并为每个对象中的每个位置值创建新对象,如下所示:
const newData = [
{ location: 'Houston', value: '375', name: 'p1', 'date started': 'April 2007' },
{ location: 'Dallas', value: '508', name: 'p1', 'date started': 'April 2007' },
{ location: 'El Paso', value: '1232', name: 'p1', 'date started': 'April 2007' },
{ location: 'El Paso', value: '43', name: 'p2', 'date started': 'April 2017' },
{ location: 'Houston', value: '18789', name: 'p3', 'date started': 'June 2012' },
{ location: 'Austin', value: '8977', name: 'p3', 'date started': 'June 2012' },
{ location: 'El Paso', value: '6754656', name: 'p3', 'date started': 'June 2012' },
{ location: 'Houston', value: '878', name: 'p4', 'date started': 'December 2015' },
{ location: 'Dallas', value: '4556', name: 'p4', 'date started': 'December 2015' },
{ location: 'Austin', value: '987', name: 'p4', 'date started': 'December 2015' },
{ location: 'El Paso', value: '1456232', name: 'p4', 'date started': 'December 2015' }
]
我之前必须为类似的项目执行此操作,时间紧迫,最后手动编辑原始CSV文件.我宁愿不再这样做了.到目前为止,我已经尝试了map / forEach和Object.keys的各种组合,没有运气.
任何想法将不胜感激!
解决方法:
您可以迭代对象的所有键并排除不需要的propoerties并为结果集构建新对象.
var data = [{ name: 'p1', 'date started': 'April 2007', Houston: '375', Dallas: '508', Austin: '', 'El Paso': '1232' }, { name: 'p2', 'date started': 'April 2017', Houston: '', Dallas: '', Austin: '', 'El Paso': '43' }, { name: 'p3', 'date started': 'June 2012', Houston: '18789', Dallas: '', Austin: '8977', 'El Paso': '6754656' }, { name: 'p4', 'date started': 'December 2015', Houston: '878', Dallas: '4556', Austin: '987', 'El Paso': '1456232' }],
result = data.reduce(function (r, o) {
Object.keys(o).forEach(function (k) {
if (['name', 'date started'].includes(k) || !o[k]) {
return;
}
r.push({ location: k, value: o[k], name: o.name, 'date started': o['date started'] });
});
return r;
}, []);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
内容总结
以上是互联网集市为您收集整理的javascript – 对象数组:为每个具有值的指定键创建新对象全部内容,希望文章能够帮你解决javascript – 对象数组:为每个具有值的指定键创建新对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。