JS 数组 - 高级分配



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

请考虑以下代码:

a['a1'] = 'AJA'

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

因此,如果我们继续解释这一点:

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

它记录:

A
J
A
AJA

现在,我所需要的只是在第 4 个位置分配一个新角色。

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

我知道我们可以使用字符串连接来做到这一点,即 a['a1'] = a['a1'] + 'Y'并完成此操作。

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

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

您可以看到此示例。我尝试更改已创建字符串的第二个字符,但它将不再更改。

let a  = {};
a['a1'] = 'AJA';
a.a1[1] = 'A';
console.log(a.a1);

有关更多信息,您可以看到 MDN 文档

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

变量 s = 'ss';

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

最新更新