【发布时间】:2013-11-25 23:26:45
【问题描述】:
我正在编写一个数组中会有多个动作的代码。
var randomStringsWriting = [
'Write about ' + randomObjectsPlural,
'Think about ' + randomObjectsPlural,
'Love ' + randomObjectsPlural
“randomObjectsPlural”变量是另一个带有名词的数组
var randomObjectsPluralList = [
'cats',
'dogs',
'people',
]
为了让我更容易写一个变量而不是方程,我最初设置了这个(注意这是初始数组中的变量,而不是“randomObjectsPluralList”)
var randomObjectsPlural = randomObjectsPluralList[0]
我希望每次点击时都能更新文本,所以我写了这个函数:
$("#screen" ).click(function(){
randomObjectsPlural = randomObjectsPluralList[Math.floor(Math.random()*randomObjectsPluralList.length)];
});
奇怪的是,当我点击随机化时,尽管点击随机化,但仍保留相同的“randomObjectsPlural”变量。例如,屏幕最终会显示...
Write about cats
Think about cats
Love cats
...当我想要更多类似的东西时
Write about cats
Think about people
Love dogs
名词改变的唯一方法是刷新页面。这里到底发生了什么?
【问题讨论】:
-
你能发一个JSFiddle吗?请问?
-
点击更改变量值。它不会更改字符串数组的内容。该数组的值是在等号将连接形成的字符串列表放入其中时设置的。在你再次这样做之前它不会改变。此外,相同的代码使用相同的值连接到所有字符串中。所以它们永远是一样的。
-
那么我该如何修复/绕过/重写这个?
标签: javascript arrays random