javascript - 意外的 Javascript 数组行为
问题描述
我将变量签名bubbleL1
为1
,但为什么bubbles
列表中的第一个变量bubbleL1
仍然显示undefined
?我知道这可能是一个愚蠢的问题,但我真的不知道为什么。
let bubbleL1, bubbleL2, bubbleL3, bubbleR1, bubbleR2, bubbleR3;
let bubbles = [bubbleL1, bubbleL2, bubbleL3, bubbleR1, bubbleR2, bubbleR3];
bubbleL1 = 1;
console.log(bubbleL1) // 1
console.log(bubbles) // [undefined, undefined, undefined, undefined, undefined, undefined]
我想要的是一个列表,其中每个项目都有一个特定的名称(出于声明的原因,我真的不只是使用气泡 [0]、气泡 [1]...)
假设我们有一个名为 的列表bubbles
,还有六个变量名为bubbleL1
, bubbleL2
, bubbleL3
, bubbleR1
, bubbleR2
, bubbleR3
。我想将所有这六个变量都放入bubbles
列表中,以便稍后我可以为列表中的每个变量分配值,如下所示:
bubbles.forEach((bubble) => {
bubble = "something";
})
解决方案
bubbleL1
是原语,因此按值复制。
let x = 3;
let sum = x;
sum = 3 + 5;
console.log(x); // 3
另一方面,对象和数组将表现出您预期的按引用复制行为:
let x = {a: 3};
let sum = x;
sum.a = 3 + 5;
console.log(x.a); // 8
推荐阅读
- python - 无法让子模块在另一个应用程序中正确导入
- codeigniter - 如何在codeignitor钩子中运行查询
- python - 真值表。以所需格式打印每行的每个 True 值的总和
- algorithm - 用字典优化O(n^2)算法,有没有可能走得更远
- r - 如何将日期转换为R中的文本?
- linux - 有没有办法从 EC2 实例中获取文件夹,然后每天将其内容发送到存储桶
- javascript - 来自 Axios 的数据结果
- javafx - 关于创建简单教程和启动的 Nullpointer
- google-kubernetes-engine - Cloud Run for Anthos:配置“
"没有任何现成的Revision - r - R按结束值选择行