0

以下の私のコードでは、行 ipClassRangeTop[3] = ipClassRangeBottom[3] + subNetCount - 1; で ipClassRangeBottom[3]にもsubNetCountが追加されているようです。これは私が期待していた結果ではありません。ipClassRangeTop[3] にその値を持たせたいだけです。

誰かが私が間違っているかもしれないことを教えてくれませんか。私はあらゆるタイプのコーディングに非常に慣れていないので、どんな助けでも大歓迎です。

var ipAddress = "172.16.1.1";
var subNetCount = 1 << 6;
var ipClassRangeTop = new Array();
var ipClassRangeBottom = new Array();
var classMaskDec = 65536;
var loopCount = 3; //classMaskDec/subNetCount;

//console.log(ipAddress, "ip address");
ipAddress = ipAddress.split(".");
ipClassRangeBottom = ipAddress;
ipClassRangeBottom[2] = 0;
ipClassRangeBottom[3] = 0;
ipClassRangeTop = ipClassRangeBottom;
//console.log(ipAddress, "ip address");

while (loopCount > 0 ) {
//console.log(i++);
console.log(ipClassRangeBottom, "1st bottom in loop");

ipClassRangeTop[3] = ipClassRangeBottom[3] + subNetCount - 1;
console.log(ipClassRangeBottom, "after top [3] assign");

if (ipClassRangeTop[3] > 255) {
    ipClassRangeTop[2] = ipClassRangeTop[2] + 1;
    ipClassRangeTop[3] = subNetCount - 1;
    console.log("IF RAN");
}

console.log(loopCount);
console.log(ipClassRangeTop);
console.log(ipClassRangeBottom);

ipClassRangeBottom[3] = ipClassRangeBottom[3] + subNetCount;
console.log(ipClassRangeBottom);
loopCount--;
}

console.log(ipAddress, "ip address");
console.log(ipClassRangeTop);
console.log(ipClassRangeBottom);

ありがとう、マーク

4

1 に答える 1

4

ある変数から別の変数に配列への参照を割り当てても、配列のコピーは作成されません (JavaScript で)。あれは:

var a = [1, 2, 3];
var b = a;
b[0] = "Hello World!";
alert(a[0]); // alerts "Hello World!"

配列の実際のコピーを作成する場合:

var a = [1, 2, 3];
var b = a.slice(0);
b[0] = "Hello World!";
alert(a[0]); // alerts "1"
于 2013-06-24T02:03:57.777 に答える