javascript 加入新元素时保留数组中的元素

lsmepo6l  于 2022-10-30  发布在  Java
关注(0)|答案(3)|浏览(215)

添加新项时无法保留数组中的数据。此代码位于循环btw中

  1. let placeHolder = facArray[key].filter(i => i.M == map).map(i => i.W)
  2. mapArray[map] = [...placeHolder]

我尝试将数据存储在数组中,并将map的值作为索引,我想将数据推送到该数组中。顺便说一句,这是一个循环,但它会不断删除以前的数据。在添加数据时,如何保留以前的数据

fafcakar

fafcakar1#

你需要放置一个对Array的非基元示例的引用,以用作Map键。

  1. var mapArray = new Map();
  2. ...
  3. ...
  4. let placeHolder = facArray[key].filter(i => i.M == map).map(i => i.W)
  5. mapArray.set(map,[...placeHolder]);
  6. ...
  7. ...
z4bn682m

z4bn682m2#

在使用spread运算符获取所有旧数据之前,我需要确保数组中确实存在一些内容。

  1. if(mapArray[map] === undefined){
  2. mapArray[map] = [...placeHolder]
  3. }else{
  4. mapArray[map] = [...placeHolder, ...mapArray[map]]
  5. }
ohfgkhjo

ohfgkhjo3#

您也可以使用简单的Array.push()

  1. const mapArray={abc:[1,3,5,7]}, map="abc",
  2. placeHolder=[2,4,6,8];
  3. (mapArray[map]??=[]).push(...placeHolder);
  4. console.log(mapArray[map]);

表达式(mapArray[map]??=[])将初始化mapArray中的数组,以防它以前不存在。

相关问题