javascript将数组复制到另一个

时间:2013-01-24 09:19:19

标签: javascript

我有以下代码片段,其中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];
 }

5 个答案:

答案 0 :(得分:0)

如果要克隆数组,可以使用本页提到的slice()方法:

http://www.hardcode.nl/subcategory_1/article_414-copy-or-clone-javascript-array-object

var oldArray = ["mip", "map", "mop"];
var newArray = oldArray.slice();

答案 1 :(得分:0)

你的数组声明是错误的,它应该是: -

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

答案 2 :(得分:0)

因此,在您进行编辑之后,我发现您的问题是您的变量名中有一些拼写错误。

替换:

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

使用:

var grpNameArr = groupParam.split("#");
//                      ^ Missing `a` and `r`.
var groupCn= groupCondition.split("&");
//       ^ Capital C  ^ Missing `i`'s and `o`.

旧答案

这两行:

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];

除此之外,假设mgroupcn的长度,代码应该有效。

但是,较短的解决方案是复制数组:

var contain = groupcn.slice();
var cmds = grpNameArr.slice();

答案 3 :(得分:0)

你可以使用:

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

答案 4 :(得分:-1)

以下错误出现在代码中

  1. 为两个阵列使用一个循环。由于长度不同,因此应使用两个不同的环。

  2. groupcn变量中存在拼写错误。

  3. 检查此代码

    <!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>