0

次のコード スニペットがあります。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];
 }
4

5 に答える 5

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();
于 2013-01-24T09:22:04.647 に答える
0

配列宣言が間違っています。次のようにする必要があります:-

var groupcn=["All","All","All","All"]; 
var grpNameArr=["abc","def","ghi"]; 
于 2013-01-24T09:23:15.723 に答える
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`.

古い回答

これらの 2 行:

var groupcn = All,All,All,All; 
var grpNameArr = abc,def,ghi;

おそらくあなたの問題です。

Allそこで行っているのは、変数を新しい変数に割り当ててから、新しい変数として 3 回groupcn宣言することです。All

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();
于 2013-01-24T09:23:47.347 に答える
0

あなたが使用することができます:

var contain=groupcn.concat();
var cmds=grpNameArray.concat();
于 2013-01-24T09:23:56.813 に答える
-1

次の間違いはコードにありました

  1. 両方の配列に 1 つのループを使用します。長さが同じではないため、2 つの異なるループを使用する必要があります。

  2. 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>
于 2013-01-24T09:30:32.237 に答える