javascript - UnderscoreJS - 如何展平嵌套属性
问题描述
我有如下所示的 JSON 数组:
[{
'a': 1,
'b': 10,
'aa': { 'a': 11, 'ab': 110 }
}, {
'a': 2,
'b': 20,
'aa': { 'a': 22, 'ab': 220 }
}, {
'a': 3,
'b': 30,
'aa': { 'a': 33, 'ab': 330 }
}, ...]
编辑: 这里提到的数组是动态的。它可能包含比此处指定的更多或更少的元素。
并使用Underscore
,我想展平这个数组,以便我可以得到以下输出:
[{ 'a': 1},
{ 'a': 11 },
{ 'a': 2 },
{ 'a': 22 },
{ 'a': 3 },
{ 'a': 33 }]
解决方案
我在 UnderscoreJS 中找不到合适的方法来执行此操作,因为它无法通过简单的数组展平来实现。
你可以像这样使用纯 JavaScript 来做到这一点:
const source = [{
'a': 1,
'b': 10,
'aa': { 'a': 11, 'ab': 110 }
}, {
'a': 2,
'b': 20,
'aa': { 'a': 22, 'ab': 220 }
}, {
'a': 3,
'b': 30,
'aa': { 'a': 33, 'ab': 330 }
}];
const result = source.reduce((acc, item) => {
acc.push({a: item.a});
acc.push({a: item.aa.a});
return acc;
}, []);
console.log(result);
推荐阅读
- mysql - SQL 选择 ID 然后在更新中使用该 ID
- ruby-on-rails - 无法自动加载常量错误 - Rails
- deprecated - 如何在 github 操作中重构已弃用的 set-env
- amazon-web-services - AWS Web 应用程序防火墙 - 将 OWASP 10 Cloudformation 模板转换为 WAFV2
- python - 根据同一索引上的另一列值串联拆分字符串
- javascript - 如何在firestore中创建带有子集合的文档
- outlook - Mircrosoft - first last(组织)命名以避免发送错误
- matplotlib - Matplotlib/Seaborn:自 3.3 起不推荐将非整数作为三元素位置规范传递
- javascript - 如何删除数组内数组的索引?
- reactjs - 格式化输入日期集