javascript - 如何将数组中的数组拆分为json?地图 Javascript
问题描述
所有代码都在这里:
https://stackblitz.com/edit/angular-format-wi?file=src/app/app.component.ts
您可以看到带有 3 个对象的数组,但在对象内部您也可以看到数组...
我需要将所有数组拆分为对象。
校验码:
this.allFilters.push(
Array.isArray(data.value)
? data.value.map((obj: any) => {
return {
name: obj.name,
value: obj.value
};
})
: { name: data.name, value: data.value }
);
Html 打印并不重要,这仅适用于视图 json。
现在我的 allFilters var 就像:
[{ "name": "one", "value": 1 }, { "name": "two", "value": 2 }, { "name": "three", "value": 3 }],
{"name": "Second", "value": 15 },
[{ "name": "one", "value": 1 }, { "name": "two", "value": 2 }, { "name": "three", "value": 3 }, { "name": "four", "value": 4 }]
带有内部数组、对象、数组的数组,但我需要这样:
[
{ "name": "one", "value": 1 }, { "name": "two", "value": 2 }, { "name": "three", "value": 3 },
{"name": "Second", "value": 15 },
{ "name": "one", "value": 1 }, { "name": "two", "value": 2 }, { "name": "three", "value": 3 }, { "name": "four", "value": 4 }
]
我期望对象数组。
没有混合数组和对象的数组。
只是反对里面。
解决方案
什么时候data.value
是一个数组,即使你这样做map
也会给你同样的结果。
当它是一个数组时修改你的recieveMessage(data)
和使用。array.concat()
recieveMessage(data) {
if (Array.isArray(data.value)) {
this.allFilters = this.allFilters.concat(data.value);
} else {
this.allFilters.push({ name: data.name, value: data.value });
}
}
与ternary
运营商,
recieveMessage(data) {
Array.isArray(data.value) ?
this.allFilters = this.allFilters.concat(data.value)
:
this.allFilters.push({ name: data.name, value: data.value });
}