JS数组 - 高级赋值

时间:2017-01-11 08:01:47

标签: javascript

这与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'并完成此任务。

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

2 个答案:

答案 0 :(得分:3)

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

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

let a  = {};
a['a1'] = 'AJA';

a.a1[1] = 'A';

console.log(a.a1);

有关详情,您可以看到 MDN Documentation

答案 1 :(得分:-2)

我知道[a1] [3]或a.a1 [3]是一个字符串变量,你可以把它当作:

var s ='ss';

当您评估s [0]时,您将获得一个字符串值。因此,当您为s指定任何字符串值时,您将不会获得'ss'+ anyvalue而是anyvalue。 :)