关于javascript:JS数组 – 高级作业

JS arrays - advanced assignment

本问题已经有最佳答案,请猛点这里访问。

这与JavaScript中的数组有关,我正试图在复杂的逻辑中使用它。

考虑以下代码:

1
a['a1'] = 'AJA'

我们知道,这与a.a1 = 'AJA'相同(前提是给出了正确的定义)。

所以,如果我们继续解释这一点:

1
2
3
4
console.log(a.a1[0])
console.log(a.a1[1])
console.log(a.a1[2])
console.log(a.a1)

IT日志:

1
2
3
4
A
J
A
AJA

现在,我只需要在第四个位置分配一个新角色。

当我尝试a[a1][3] = 'Y'a.a1[3] = 'Y'然后尝试console.log(a.a1)时,它仍然显示AJA而不是AJAY

我知道我们可以使用字符串串联来实现这一点,即并完成这项工作。

但是为什么第一种方法不起作用呢?通过其他什么方法可以做到这一点?


字符串是不可变的。这意味着如果您创建了一个字符串,就不能再修改它了。所以你的a1对第4个字符一无所知。

您可以看到这个例子。我试图更改已经创建的字符串的第二个字符,但它将不再更改。

1
2
3
4
5
6
let a  = {};
a['a1'] = 'AJA';

a.a1[1] = 'A';

console.log(a.a1);

有关更多信息,请参阅MDN文档


如我所知,a[a1][3]或a.a1[3]是字符串变量,您可以将其视为:

var s='ss';

当计算s[0]时,将得到一个字符串值。因此,当您将任何字符串值赋给s时,您将不会得到'ss'+任何值,而是得到任何值。:)