gpt4 book ai didi

javascript - 将一个对象插入数组会导致该对象中只有一个值

转载 作者:行者123 更新时间:2023-12-03 06:17:26 26 4
gpt4 key购买 nike

当我尝试将对象插入数组时,它工作正常。我在 for 循环中使用它,因此应该将 59 个对象放入数组中。它确实将 59 个东西放入数组中,但只有第一个是对象。这是代码:

for (i = 0; i < game.Levels[LevelNum - 1].Generation[0].LengthGen; i++) {
noise = game.Levels[LevelNum - 1].Generation[0].Noise
var a = new Object(i * 20, 20, 20, Math.round(Math.random() * noise + 1));
game.Levels[LevelNum - 1].Generation.push(a);
console.log("Generated " + i)
}

这是从页面上的控制台访问的输出:

[Object, Number*57]
//the times 52 is the number of "Number"'s repeated

我需要做的是用具有高度、长度、x 和 y 坐标的对象填充数组。然后稍后将用它来绘制一个盒子。目前我使用的代码仅显示其中包含 1 个值的对象。当我尝试将一个键(我不知道它是如何调用的,但当你将“x:”放在值前面时)分配给所有四个值时。当我这样做时,会出现预期的情况,但游戏无法加载。

最佳答案

value 具有原始 JavaScript 数据类型时,

var o = new Object( value)

为与其数据类型一致的值创建一个包装对象。正如 @RobG 注释中提到的,Object 在作为构造函数调用时仅采用一个参数。

所以

var a = new Object(i * 20, 20, 20, Math.round(Math.random() * 噪声 + 1));

创建与

相同的结果

var a = new Object(i * 20);

它创建一个 Number 对象作为 20 倍数的包装器。当登录到控制台时,它将显示为数字,但 "typeof a" 应该仍然评估为“object”,并且a.constructor应该评估为“Number”(而不是“Object”)。

关于javascript - 将一个对象插入数组会导致该对象中只有一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com