繁体   English   中英

Javascript 关联数组中不可接受的值

[英]Unacceptable value in associative array in Javascript

我在 JavaScript 中的二维数组中的关联数组中设置了值。 我使用了以下源代码:

 var properties = { "isBold": false, "isItalic": false, "isUnderline": false }; // Creation of 2D array, 6x6 var listOfProperties = new Array(6); for (var i = 0; i < listOfProperties.length; i++) { listOfProperties[i] = new Array(6); } // Population of listOfProperties with properties for (var row = 0; row < listOfProperties.length; row++) { for (var col = 0; col < listOfProperties.length; col++) { listOfProperties[row][col] = properties; } } var property = listOfProperties[2][2]; property.isBold = true; // I would like to populate property isBold console.log("property > " + property.isBold); var property = listOfProperties[0][0]; console.log("property > " + property.isBold);

我创建了用属性填充的二维数组(关联数组,所有值都是假的)。 然后我为 *listOfProperties[2][2]** 为isBold设置了true

但是为什么listOfProperties [0][0]中的isBold包含true而不是false

您需要填充对象副本的二维数组,而不是引用:

 var properties = { "isBold": false, "isItalic": false, "isUnderline": false }; // Creation of 2D array, 6x6 var listOfProperties = new Array(6); for (var i = 0; i < listOfProperties.length; i++) { listOfProperties[i] = new Array(6); } // Population of listOfProperties with properties for (var row = 0; row < listOfProperties.length; row++) { for (var col = 0; col < listOfProperties.length; col++) { listOfProperties[row][col] = Object.assign({}, properties); } } var property = listOfProperties[1][1]; property.isBold = true; // I would like to populate property isBold console.log("property > " + property.isBold); var property = listOfProperties[0][0]; console.log("property > " + property.isBold);

有关更多详细信息,请查看

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM