javascript - 将数字添加到数组元素并分配给另一个数组元素时出现问题

标签 javascript arrays

在下面的代码中,在 ipClassRangeTop[3] = ipClassRangeBottom[3] + subNetCount - 1 行中;看来 subNetCount 也被添加到 ipClassRangeBottom[3] 中。这不是我所期待的结果。我只希望 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);

谢谢, 标记

最佳答案

将一个数组的引用从一个变量分配给另一个变量不会复制该数组(在 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"

关于javascript - 将数字添加到数组元素并分配给另一个数组元素时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17267094/

相关文章:

javascript - "var d = document;"真的有用吗?

javascript - 仅提取新日期的时间

javascript - 我可以设置一个 QUnit 钩子(Hook)在套件中的所有测试之前运行吗?

javascript - 更改div的高度获取另一个div的高度

c++ - 在作为参数传递的数组上使用 sizeof

javascript - 根据其多个属性从数组中删除元素

JavaScript 数组问题

javascript - jQuery 帖子中的错误 : Could not convert JavaScript argument

Python 对数组的列表理解

javascript - 格式化 JSON,使用 vanilla js 按 key 组排序