我有以下代码片段,其中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];
}
答案 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];
除此之外,假设m
是groupcn
的长度,代码应该有效。
但是,较短的解决方案是复制数组:
var contain = groupcn.slice();
var cmds = grpNameArr.slice();
答案 3 :(得分:0)
你可以使用:
var contain=groupcn.concat();
var cmds=grpNameArray.concat();
答案 4 :(得分:-1)
以下错误出现在代码中
为两个阵列使用一个循环。由于长度不同,因此应使用两个不同的环。
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>