javascript将数组复制到另一个数组
我有下面的代码片段,其中for循环中未指定要包含的值,这是将数组复制到其他数组的正确方法吗 就像这里一样javascript将数组复制到另一个数组,javascript,Javascript,我有下面的代码片段,其中for循环中未指定要包含的值,这是将数组复制到其他数组的正确方法吗 就像这里一样 var groupCondition = "ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&ALL-OF-THEM&"; var groupParam = "rsTxTraceMsgAside&rsExpTraceMsgAside&rsTxTraceMsgBside&rsExpTraceMsgBsi
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&rsexptracemsgssidehp1TxTraceMsg&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&rsexptracemsgssidehp1TxTraceMsg&hp1ExpTraceMsg”;
var grpNameArr=groupParam.split(“#”);
var groupcn=groupCondition.split(&);
var contain=新数组();
var cmds=新数组();
var ii;
for(ii=0;iivar-groupcn=All,All,All,All;
不是创建数组的方式。请尝试使用var-groupcn=[All,All,All,All];
来代替。这只是我举的一个例子!它是一个数组,包含这些值(对于数组来说是正确的)但在为loopNope分配内部值时仍然存在问题。现在grpNameArr
只是对groupcn
的引用。在其中一个数组中更改的任何内容都将在另一个数组中更改。@user1752557:Edited。通过我的更改,代码的工作方式应该是一样的,包含和cmds
都是带有2个ent的数组ries(因为您在#
上拆分了groupParam
,所以它只有2个条目。