为了账号安全,请及时绑定邮箱和手机立即绑定

JS在对象数组中切片嵌套数组

JS在对象数组中切片嵌套数组

月关宝盒 2022-06-09 11:03:53
我有以下数组结构:  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数组。到目前为止,这是我尝试过的,但我需要使用 sliced 获得与输入数组相同的输出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)实现它的最简单方法是什么?谢谢!
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

您可以使用数组.map()方法:


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)


查看完整回答
反对 回复 2022-06-09
  • 1 回答
  • 0 关注
  • 238 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信