2015-10-20 68 views
1

我有以下代码:的Javascript二维字符串数组更新值

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"? 

缺少什么我在这里?

+3

字符串是不可变的 – Oriol

回答

1

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

有问题的元素其实是String

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

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

不管怎么说,它显示的原因是z而不是x,是因为字符串是不可变的。这意味着他们的价值观不能改变。相反,创建新对象。

+0

您可以使用string.split将字符串转换为数组('') –

+0

不,字符串不是数组。这是一个字符串。 – 2015-10-20 18:57:28