为什么 JS 中这两个数组的语法不同?
Why's the syntax different between these two arrays in JS?
它们都包含相同的值,但我想知道为什么当我在 Dev 工具中调出它们时它们看起来不同。
var values = [6, 6, 6, 19, 13, 50];
function boxWidth() {
var widths = new Array();
widths.push(values);
console.log(widths);
console.log(values);
}
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();
values
是一个包含6个数字的一维数组。
widths
是一个二维数组。它的第一个维度是单个元素,它是对 values
的引用。第二个维度是values
中的6个数字。
console.log()
默认只详细显示第一个维度。您可以点击 widths
的三角形来查看内部维度的内容。如果将其更改为 log 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();
它们都包含相同的值,但我想知道为什么当我在 Dev 工具中调出它们时它们看起来不同。
var values = [6, 6, 6, 19, 13, 50];
function boxWidth() {
var widths = new Array();
widths.push(values);
console.log(widths);
console.log(values);
}
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();
values
是一个包含6个数字的一维数组。
widths
是一个二维数组。它的第一个维度是单个元素,它是对 values
的引用。第二个维度是values
中的6个数字。
console.log()
默认只详细显示第一个维度。您可以点击 widths
的三角形来查看内部维度的内容。如果将其更改为 log 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();