因此,我目前正在尝试覆盖多维数组中的一个值.....我想根据channel.name所在的位置覆盖一个值,并根据需要更改静音状态的值。

所以我想做的是:


数组中的值静音
当我调用该函数取消静音时,我想将“静音”值替换为“取消静音”。
然后执行相同的“静音”并有效地切换值。


问题是我目前总是一遍又一遍地推送值,如下所示:[ [ '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;

关于javascript - 覆盖/替换多维数组中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33737543/

10-11 22:03
查看更多