我具有以下数组结构:
const mockData = [
{
text: 'Text1',
data: [
{ field: '1' },
{ field: '2' },
{ field: '3' },
{ field: '4' },
{ field: '5' },
{ field: '6' }
]
},
{
text: 'Text1',
data: [
{ field: '1' },
{ field: '2' },
{ field: '3' },
{ field: '4' },
]
}
];
我需要splice(0, 3)
嵌套的data
数组。
这是我到目前为止尝试过的,但是我需要获得与切片为data
的输入数组相同的输出:
const mockData = [
{
text: 'Text1',
data: [
{ field: '1' },
{ field: '2' },
{ field: '3' },
{ field: '4' },
{ field: '5' },
{ field: '6' }
]
},
{
text: 'Text1',
data: [
{ field: '1' },
{ field: '2' },
{ field: '3' },
{ field: '4' },
]
}
];
const slicedArray = mockData.reduce((accumulator, arr) => {
const spliceData = arr.data.splice(0, 3);
accumulator.push(spliceData);
return accumulator;
}, []);
console.log(slicedArray)
最简单的方法是什么?谢谢!
您可以使用:
const mockData = [
{
text: 'Text1',
data: [
{ field: '1' },
{ field: '2' },
{ field: '3' },
{ field: '4' },
{ field: '5' },
{ field: '6' }
]
},
{
text: 'Text1',
data: [
{ field: '1' },
{ field: '2' },
{ field: '3' },
{ field: '4' },
]
}
];
const slicedArray = mockData.map(d => ({...d, data: d.data.slice(0, 3)}))
console.log(slicedArray)