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

我有以下数组结构:


  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)


实现它的最简单方法是什么?谢谢!


月关宝盒
浏览 242回答 1
1回答

慕慕森

您可以使用数组.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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript