Javascript数组存储过程

时间:2016-05-15 02:39:16

标签: javascript arrays

为什么在以下数组中

var mensajes = [('juan', 'pedro', 'hola como andas?'), ('jorge', 'matias', 'hola! todo bien?'), ('pedro', 'matias', 'buen dia matias!!')];

当我打印menajes时

["hola como andas?", "hola! todo bien?", "buen dia matias!!"]

不应该是一个只有1个值保存整个文本的数组吗?或者()实际上是在做什么,如何只存储()中的最后一个值?我不明白这一点。提前谢谢

2 个答案:

答案 0 :(得分:3)

由于您在数组文字中使用了括号,因此JS解释器将包装的代码视为表达式,,成为逗号运算符。逗号运算符从左到右计算它的操作数并返回最后一个操作数。这就是为什么括号中操作数的最后一个值被设置为数组值。

答案 1 :(得分:1)

()使数组只存储你想要存储的内容的最后一部分。

对于你的问题,没有。您的代码不是包含所有文本的1个数组。如果您希望它打印出所有文本,您必须删除阵列中的所有()。

像这样:var mensajes = ['juan', 'pedro', 'hola como andas?', 'jorge', 'matias', 'hola! todo bien?', 'pedro', 'matias', 'buen dia matias!!'];

如果您想要打印特定的数组而不是全部数组,可以将其更改为:

var mensajes = [['juan', 'pedro', 'hola como andas?'], ['jorge', 'matias', 'hola! todo bien?'], ['pedro', 'matias', 'buen dia matias!!']];

这将数组包含在数组中,因此如果你像console.log(mensajes [0])那样你可以打印一个完整的数组,这只会打印出[juan,pedro,hola coma andas]。在这种情况下,您无法使用console.log(mensajes)一次打印所有文本。

如果你想要这个,你首先要写数组名,然后用括号表示你想要的数组的索引值。

希望这有帮助!