gpt4 book ai didi

javascript - JS : slice a nested array in array of objects by index

转载 作者:行者123 更新时间:2023-11-28 12:11:34 24 4
gpt4 key购买 nike

任务是通过 data 属性对嵌套数组进行切片。我有以下数组结构:

  const mockData = [
{
text: 'Text1',
data: [
{ field: '1' },
{ field: '2' },
{ field: '3' },
{ field: '4' },
{ field: '5' },
{ field: '6' }
]
},
{
text: 'Text2',
data: [{ field: '1' }, { field: '2' }, { field: '3' }, { field: '4' }]
}
];

这是我使用的方法:

const sliceArray = mockData => mockData.map(d => ({...d, data: d.data.slice(0, 3)}))

它通过 data 属性遍历所有嵌套对象和切片数组,但是如何针对特定嵌套对象而不是所有对象执行此操作?我想使用 text 属性作为键。

因此,如果我将 Text1 传递给方法 - 第一个对象中的 data 属性仅应被切片,输出应为:

 const mockData = [
{
text: 'Text1',
data: [{ field: '1' }, { field: '2' }, { field: '3' }]
},
{
text: 'Text2',
data: [{ field: '1' }, { field: '2' }, { field: '3' }, { field: '4' }]
}
];

如果我传递“Text2”:

 const mockData = [
{
text: 'Text1',
data: [
{ field: '1' },
{ field: '2' },
{ field: '3' },
{ field: '4' },
{ field: '5' },
{ field: '6' }
]
},
{
text: 'Text2',
data: [{ field: '1' }, { field: '2' }, { field: '3' }]
}
];

解决办法是什么?谢谢!

最佳答案

您可以尝试添加这样的条件:

const sliceArray = (mockData, text) => 
mockData.map(d => d.text === text
? {...d, data: d.data.slice(0, 3)}
: d)

关于javascript - JS : slice a nested array in array of objects by index,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60975708/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com