我有以下对象,并且我正在努力展平两个数组,因此它们是一个数组。
这里是对象
{
"id":"575802",
"listOfStuff":[
"AB",
],
"listOfDocs":[
[
{
"doc_id":"123456",
"id":"123",
"filename":"myFileName.pdf",
}
],
[
{
"doc_id":"1234",
"id":"123",
"filename":"myFileName2.pdf",
}
]
]
}
这是我的目标输出:
{
"id":"575802",
"listOfStuff":[
"AB",
],
"listOfDocs":[
{
"doc_id":"123456",
"id":"123",
"filename":"myFileName.pdf",
} ,
{
"doc_id":1234,
"id":"123",
"filename":"myFileName2.pdf",
}
]
}
我尝试执行以下操作以使数组变平,但这没有用。
Array.prototype.concat.apply([], row.listOfDocs);
答案 0 :(得分:1)
使用flat function,请尝试以下操作:
const data = {
"id": "575802",
"listOfStuff": [
"AB"
],
"listOfDocs": [
{
"doc_id": "123456",
"id": "123",
"filename": "myFileName.pdf"
},
{
"doc_id": 1234,
"id": "123",
"filename": "myFileName2.pdf"
}
]
}
const result = {...data, listOfDocs:data.listOfDocs.flat()};
console.log(result);
答案 1 :(得分:1)
const data = {
"id": "575802",
"listOfStuff": [
"AB"
],
"listOfDocs": [[
{
"doc_id": "123456",
"id": "123",
"filename": "myFileName.pdf"
}],
[{
"doc_id": 1234,
"id": "123",
"filename": "myFileName2.pdf"
}
]]
}
data.listOfDocs = data.listOfDocs.reduce((acc, val) => acc.concat(val), [])
console.log(data);
您可以使用.flat()
,对于IE也需要一个polyfill。
您可以使用上述解决方案来解决问题,而不是使用扁平化解决方案。