它们都包含相同的值,但我想知道为什么当我在Dev工具中控制它们时它们看起来有什么不同。
var values = [6, 6, 6, 19, 13, 50];
function boxWidth() {
var widths = new Array();
widths.push(values);
console.log(widths);
console.log(values);
}
答案 0 :(得分:5)
widths
数组是一个数组,其中有一个成员引用values
数组,而values
是一个包含6个数字的数组。
要单独复制数字,请执行以下操作:
widths.push(...values);
或者在创建数组时执行此操作:
var widths = [...values];
或者是传统兼容:
var widths = values.slice();
您可以序列化数组以获得更清晰的视图。
var values = [6, 6, 6, 19, 13, 50];
function boxWidth() {
var widths = new Array();
widths.push(values);
console.log(JSON.stringify(widths));
console.log(JSON.stringify(values));
}
boxWidth();

答案 1 :(得分:4)
values
是一个包含6个数字的1维数组。
widths
是一个二维数组。它的第一个维度是单个元素,它是对values
的引用。第二个维度是values
中的6个数字。
console.log()
仅显示第一个维度。您可以单击widths
的显示三角形以查看内部维度的内容。如果将其更改为log JSON,您将看到每个JSON的完整结构。然后,您将在widths
中看到额外的嵌套级别。
var values = [6, 6, 6, 19, 13, 50];
function boxWidth() {
var widths = new Array();
widths.push(values);
console.log(JSON.stringify(widths));
console.log(JSON.stringify(values));
}
boxWidth();