覆盖/替换多维数组中的值

Overwrite/Replace Value in multi-dimensional array

本文关键字:数组 替换 覆盖      更新时间:2023-09-26

所以我目前正在尝试覆盖多维数组中的一个值。。。。。我想根据channel.name所在的位置覆盖一个值,如果愿意,可以更改静音状态的值。

所以我想做的是:

  1. 阵列中的静音值
  2. 当我调用函数取消静音时,我想用"取消静音"替换"静音"值
  3. 然后执行相同的"静音"并有效地切换值

问题是,我目前总是一遍又一遍地推送这些值,就像这样:[ [ '1447682617.29', 'SIP/487-0000000b', 'Mute', 'Unmute' ] ]

我只是想覆盖"静音"并用"取消静音"替换它。

我的索引部分很好,它只是能够覆盖那个值。

到目前为止,我的代码是:

//ARI function to mute channels.
  function mute(mutval,mutestate) {
    console.log("Muting:" + mutval);
    var index = 0;
    var findex = false;
    for (var i in channelArr) {
      var channelArrEle = channelArr[i];
      if (channelArrEle[0] == mutval) {
        index = i;
        findex = true;
        console.log("First Part works!")
      }
    }
    if (findex) {
      channelArr[index].push(mutestate);
      console.log(channelArr);
    } else {
      console.log("Error")
    }
  }
  //ARI function to unmute channels which have been muted.
  function unmute(unval,mutestate) {
    console.log("Unmuting: " + unval);
            var index = 0;
    var findex = false;
    for (var i in channelArr) {
      var channelArrEle = channelArr[i];
      if (channelArrEle[0] == unval) {
        index = i;
        findex = true;
        console.log("First Part works!")
      }
    }
    if (findex) {
      channelArr[index].push(mutestate);
      //Just added this to see what would happen!
      channelArr[index] = mutestate;
      console.log(channelArr); 
    } else {
      console.log("Error")
    }
  }

任何建议无疑都是些小问题。

尝试更改(同时出现)

channelArr[index].push(mutestate);

带有

var channelData = channelArr[index];
channelData[2] = mutestate;
channelArr[index] = channelData;

如果它有效,你可以试着像这个一样缩短代码

channelArr[index][2] = mutestate;