我有一个用例,其中我必须传递一个包含多个数组的数组
Array:
"mainArray": [
{
"id": "1",
"count": 5,
"strengthEdit": 1,
"date": "2019-04-07",
"lastDate": "2018-09-12",
"array1": [
{
"id": "17",
"innerrArray1": {
"name": "A"
},
"availability": 20,
"lastEditedCount": 5
},
{
"id": "18",
"innerrArray1": {
"name": "B"
},
"availability": 5,
"lastEditedCount": 5
}
],
"array2": [
{
"id": "2",
"innerrArray2": {
"name": "a"
},
"strength": 80,
"lastEditedCount": 1
},
{
"id": "3",
"innerrArray2": {
"name": "b"
},
"strength": 40,
"lastEditedCount": 1
}
]
}
]
将此数组作为
传递到ant design的表中<Table dataSource={mainArray} scroll={{ y: 350 }}>
我已经解决了这一问题,方法是制作另一个数组并将其内部数组销毁,但我希望对此采取更清洁的方法。
let consumeArr = [...mainArray.innerArray1,...mainArray.innerArray2]
并将其发送到
<Table dataSource={consumeArr } scroll={{ y: 350 }}>
我想实现的还有其他可能的方式/官方方式
答案 0 :(得分:0)
根据this
dataSource
仅接受any[]
,没有其他方法可以做到这一点。
因此,唯一的解决方案是以所需格式修改输入数据。
但是,也许在此示例中,内部数组应为array1
和array2
?
如果数组的数目不是静态的,则可以使用类似的方法:
const extractArrays = (data) => {
return Object.values(data).filter(obj => Array.isArray(obj)).flat(1)
}