为了账号安全,请及时绑定邮箱和手机立即绑定

使用当前推送 javascript 复制以前的数组值

使用当前推送 javascript 复制以前的数组值

守着一只汪 2023-07-20 17:01:31
我正在尝试在条件匹配条件时推送值,并将值推送到合并最后添加值的数组。但数组被匹配的条件覆盖。   let Event = [];          if (allCheck['event1']) {            let ls = Event;            ls.push('Type1');          } else if (allCheck['event3']) {            let ls = Event;            lS.push('Type2');          } else if (allCheck['event3']) {            let ls = Event;            ne.push('Type3');           } 
查看完整描述

3 回答

?
冉冉说

TA贡献1877条经验 获得超1个赞

不确定上面的代码行包含在哪个函数中...无论如何,为了保留以前的数组值,您确实需要将其定义devEvent为全局变量。意思是,let drvEvent = [];应该写在函数之外。


let ls, lS, ne; // To access outside of if blocks

if (allCheck['drloadshed']) {

    ls = drEvents;

    ls.push('LOADSHED'); //LOADSHED

} else if (allCheck['drloadshift']) {

    lS = drEvents;

    lS.push('LOADSHIFT'); //both checked

} else if (allCheck['drneutral']) {

    ne = drEvents;

    ne.push('NEUTRAL'); //both checked

}


查看完整回答
反对 回复 2023-07-20
?
跃然一笑

TA贡献1826条经验 获得超6个赞

尝试创建 的克隆drEvents以避免改变实际数组:


let ls, lS, ne; 

      if (allCheck['drloadshed']) {

        let ls = [...drEvents];

        ls.push('LOADSHED'); //LOADSHED

      } else if (allCheck['drloadshift']) {

        let lS = [...drEvents];

        lS.push('LOADSHIFT'); //both checked

      } else if (allCheck['drneutral']) {

        let ne = [...drEvents];

        ne.push('NEUTRAL'); //both checked

      } 


查看完整回答
反对 回复 2023-07-20
?
DIEA

TA贡献1820条经验 获得超2个赞

在 if 条件之外声明变量。当您使用 let 关键字声明时,它只能在该代码块内(在您的情况下的 if 条件内)访问。


let drEvent = [];

let ls = [...drEvents];

let lS = [...drEvents];

let ne = [...drEvents];

      if (allCheck['drloadshed']) {

        ls.push('LOADSHED'); //LOADSHED

      } else if (allCheck['drloadshift']) {

        lS.push('LOADSHIFT'); //both checked

      } else if (allCheck['drneutral']) {

        ne.push('NEUTRAL'); //both checked

      } 

为了避免覆盖同一数组,您可以使用扩展运算符 (...) 创建同一数组的副本。要详细了解发生这种情况的原因,您可以搜索按值传递和按引用传递(原始数据类型和引用数据类型)之间的差异。


查看完整回答
反对 回复 2023-07-20
  • 3 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信