Javascript二维字符串数组更新值

时间:2015-10-20 18:53:53

标签: javascript arrays string immutability

我有以下代码:

var data = ["z wwwww ","www   w ","w b w ww","w w  p w","w    w w","wwbwp  w"," wy  www"," wwwww  "];
console.log(data[0][0]); // outputs "z"
data[0][0]="x";
console.log(data[0][0]); // still output "z". Shouldn't it show "x"?

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

二维数组是一个数组,包含数组本身的元素。您提供的示例不是2D数组。

有问题的元素实际上是String

data[0] - 为您提供数据数组中的第一个元素,即字符串。 data[0][0] - 为您提供此字符串元素的第一个character

在JavaScript中,string是一个字符集合,但它本身不是数组。它可以转换为string.split('')的字符串。

无论如何,它显示z而不是x的原因是因为字符串是不可变的。这意味着他们的价值观无法改变。相反,会创建新对象。