JSは、オブジェクトの配列内のネストされた配列をスライス

drevival:

私は、次の配列構造を持っています:

  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)

それを達成するための最も簡単な方法は何ですか?ありがとうございました!

palaѕn:

あなたは、配列を使用する.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)

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=377943&siteId=1