Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多维数组中的覆盖/替换值_Javascript_Arrays - Fatal编程技术网

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

Javascript 多维数组中的覆盖/替换值,javascript,arrays,Javascript,Arrays,因此,我当前正在尝试覆盖多维数组中的一个值……我希望根据channel.name所在位置覆盖一个值,并更改静音状态的值(如果愿意) 所以我想做的是: 数组中的静音值 当我调用函数取消静音时,我想用“取消静音”替换“静音”值 然后执行相同的静音和有效切换值 问题是,我目前总是一遍又一遍地推送这些值,就像这样:[['1447682617.29','SIP/487-0000000b','Mute','Unmute'] 我只是想覆盖Mute并用Unmute替换它 我有索引部分,它只是能够覆盖该值 到目前

因此,我当前正在尝试覆盖多维数组中的一个值……我希望根据channel.name所在位置覆盖一个值,并更改静音状态的值(如果愿意)

所以我想做的是:

  • 数组中的静音值
  • 当我调用函数取消静音时,我想用“取消静音”替换“静音”值
  • 然后执行相同的静音和有效切换值
  • 问题是,我目前总是一遍又一遍地推送这些值,就像这样:
    [['1447682617.29','SIP/487-0000000b','Mute','Unmute']

    我只是想覆盖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][2] = mutestate;
    

    非常好的解决方案!
    var channelData = channelArr[index];
    channelData[2] = mutestate;
    channelArr[index] = channelData;
    
    channelArr[index][2] = mutestate;