这是我的数组
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);