如何只调整数组的一部分,而其他部分保持不变



这是我的数组

export const someList = {
something1: 'some string 1',
someArr: [
{
item: 'item 1',
},
},
{
item: 'item 2',
},
},
{
item: 'item 3',
},
],
something2: {
some: 'some string 2'
},
};

好的,所以我试图实现的是构建一个新的阵列,看起来像这样:

export const newList = {
something1: 'some string 1',
someArr: [
{
item: 'item 1',
},
},
{
item: 'item 2',
},
],
something2: {
some: 'some string 2'
},
};

所以一切都是一样的,除了newList只从someArr获取前两项。

我试过这个,它是正确的,但我不知道如何保持";外部";新数组中的部分(something1和something2(。

const newList = someList.someArr.slice(0, 2)

我如何构建一个新的数组,保持我想要的,但仍然从更深的嵌套数组中切片项目?

谢谢。

Event_Horizon的回答是正确的。

创建新对象的另一种方法:

const someList = {
something1: 'some string 1',
someArr: [
{
item: 'item 1',
},
{
item: 'item 2',
},
{
item: 'item 3'
}
],
something2: {
some: 'some string 2'
},
};
let newList={...someList,someArr:someList.someArr.slice(0,2)}

console.log(newList)

好的,在评论之后,我重读了这个问题,我认为你试图创建一个新的OBJECT,而不是一个新ARRAY(大括号是一个对象(。

因此,使用您的代码进行OBJECT深度复制,然后更改内部数组,它将看起来像:

export const someList = {
something1: 'some string 1',
someArr: [
{
item: 'item 1',
},
},
{
item: 'item 2',
},
},
{
item: 'item 3',
},
],
something2: {
some: 'some string 2'
},
};
let newList=JSON.parse(JSON.stringify(someList));
newList.someArr=newList.someArr.slice(0,2);

最新更新