javascript将数组复制到另一个数组

javascript将数组复制到另一个数组,javascript,Javascript,我有下面的代码片段,其中for循环中未指定要包含的值,这是将数组复制到其他数组的正确方法吗 就像这里一样 var groupCondition = "ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&"; var groupParam = "rsTxTraceMsgAside&rsExpTraceMsgAside&rsTxTraceMsgBside&rsExpTraceMsgBsi

我有下面的代码片段,其中for循环中未指定要包含的值,这是将数组复制到其他数组的正确方法吗

就像这里一样

  var groupCondition = "ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&";
  var groupParam =    "rsTxTraceMsgAside&rsExpTraceMsgAside&rsTxTraceMsgBside&rsExpTraceMsgBside&#hp1TxTraceMsg&hp1ExpTraceMsg&#";



  var grpNameArr = groupParam.split("#");
  var groupcn= groupCondition.split("&");
  var m=grpNameArr.length;

var contain=new Array();
var cmds=new Array();
var ii;

for(ii=0;ii<(m-1);ii++)
{
   contain[ii] = groupCn[ii];
   cmds[ii] = grpNameArr[ii];
 }
var groupCondition=“ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&”;
var groupParam=“rsTxTraceMsgAside&rsexptracemsgsside&rsTxTraceMsgBside&rsexptracemsgsside&#hp1TxTraceMsg&hp1ExpTraceMsg&#”;
var grpNameArr=groupParam.split(“#”);
var groupcn=groupCondition.split(&);
var m=总长度;
var contain=新数组();
var cmds=新数组();
var ii;

对于(ii=0;ii如果要克隆阵列,可以使用本页中提到的slice()方法:


您的数组声明错误,应该是这样的:-

var groupcn=["All","All","All","All"]; 
var grpNameArr=["abc","def","ghi"]; 

所以,在编辑之后,我发现您的问题是变量名中有一些输入错误

替换:

var grpNameArr = groupParm.split("#");
var groupcn= groupCondtn.split("&");
与:


旧答案

这两条线:

var groupcn = All,All,All,All; 
var grpNameArr = abc,def,ghi;
这可能是你的问题

您要做的是将变量
All
分配给一个新变量
groupcn
,然后将
All
声明为一个新变量,3次

var groupcn=All,
    All, // new variable with the name `All`
    All, // new variable with the name `All`
    All; // new variable with the name `All`. These 3 override `All`
您需要像这样初始化它们:

var groupcn = [All,All,All,All]; 
var grpNameArr = [abc,def,ghi];
var contain = groupcn.slice();
var cmds = grpNameArr.slice();
除此之外,假设
m
groupcn
的长度,则代码应该有效

但是,较短的解决方案是像这样复制阵列:

var groupcn = [All,All,All,All]; 
var grpNameArr = [abc,def,ghi];
var contain = groupcn.slice();
var cmds = grpNameArr.slice();
您可以使用:

var contain=groupcn.concat();
var cmds=grpNameArray.concat();

代码中有以下错误

  • 两个数组都使用一个循环。由于长度不同,因此应使用两个不同的循环

  • groupcn变量中存在输入错误

  • 检查此代码

    <!DOCTYPE html>
    <html>
    <script>
    function chk()
    {
      var groupCondition = "ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&";
      var groupParam =    "rsTxTraceMsgAside&rsExpTraceMsgAside&rsTxTraceMsgBside&rsExpTraceMsgBside&#hp1TxTraceMsg&hp1ExpTraceMsg&#";
    
    
    
    var grpNameArr = groupParam.split("#");
    var groupcn= groupCondition.split("&");
    
    var contain=new Array();
    var cmds=new Array();
    var ii;
    
    for(ii=0;ii<(groupcn.length-1);ii++)
    contain[ii] = groupcn[ii];
    
    for(ii=0;ii<(grpNameArr.length-1);ii++)
    cmds[ii] = grpNameArr[ii];
    
    alert("groupcn   =  "+contain);
    alert("grpNameArr   =  "+cmds);
    }
    </script>
    <body onload="chk()">
    
    </body>
    
    
    函数chk()
    {
    var groupCondition=“ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&”;
    var groupParam=“rsTxTraceMsgAside&rsexptracemsgsside&rsTxTraceMsgBside&rsexptracemsgsside&#hp1TxTraceMsg&hp1ExpTraceMsg&#”;
    var grpNameArr=groupParam.split(“#”);
    var groupcn=groupCondition.split(&);
    var contain=新数组();
    var cmds=新数组();
    var ii;
    
    for(ii=0;ii
    var-groupcn=All,All,All,All;
    不是创建数组的方式。请尝试使用
    var-groupcn=[All,All,All,All];
    来代替。这只是我举的一个例子!它是一个数组,包含这些值(对于数组来说是正确的)但在为loopNope分配内部值时仍然存在问题。现在
    grpNameArr
    只是对
    groupcn
    的引用。在其中一个数组中更改的任何内容都将在另一个数组中更改。@user1752557:Edited。通过我的更改,代码的工作方式应该是一样的,
    包含
    cmds
    都是带有2个ent的数组ries(因为您在
    #
    上拆分了
    groupParam
    ,所以它只有2个条目。