如何仅调整数组的一部分,而其他部分保持不变?
Posted
技术标签:
【中文标题】如何仅调整数组的一部分,而其他部分保持不变?【英文标题】:How to adjust only part of an array, but other parts keep the same? 【发布时间】:2022-01-08 01:45:37 【问题描述】:这是我的数组
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)
如何构造一个新数组,保留我想要的,但仍然从更深的嵌套数组中分割项目?
谢谢。
【问题讨论】:
您需要一个新数组还是一个全新的对象?您正在发送带有问题和 cmets 的混合信号。数组只有方括号,对象是大括号。您需要修改后的对象、新对象、对象中修改后的数组还是对象内部的新数组? 【参考方案1】:好的,在 cmets 之后我重新阅读了问题,我认为您正在尝试制作一个新的 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);
【讨论】:
这有什么帮助?请再次查看我的问题。 我不想改变数组,我想创建一个新的。【参考方案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)
【讨论】:
以上是关于如何仅调整数组的一部分,而其他部分保持不变?的主要内容,如果未能解决你的问题,请参考以下文章