我一直在玩隨機數組的安排,並想知道是否有辦法只從數組中拉出單詞一次。所以每次點擊changeWorld按鈕時,它都會從數組列表中隨機抽取,直到所有單詞只使用一次?使用隨機數組的JavaScript
學習JavaScript,所以我不需要任何人給我寫的代碼,只是想在正確的方向被推並且知道它是否possable。我無法找到解決這個概念的任何問題。
<body>
<button id="change-world-btn">Change World</button>
Hello <span class="world-name">World!</span><br />
<script type="text/javascript">
var worlds = new Array ("Pluto", "Mars", "Saturn", "Jupiter", "Uranus");
function newWorld() {
return worlds[Math.floor(Math.random() * worlds.length)];
}
elements = document.getElementsByTagName('span');
document.getElementById('change-world-btn').onclick = function() {
world = newWorld();
for(var i = 0, el; el = elements[i++];) {
if(el.className == 'world-name') {
el.innerHTML = world;
}
}
};
</script>
</body>
這是絕對有可能的,但我沒有看到任何你的代碼錯誤。有問題嗎?你想重構建議嗎? – Linuxios 2012-08-13 19:02:35
@Linuxios:代碼隨機挑選的話,但沒有什麼是不斷被重複的單詞。 – Guffa 2012-08-13 19:04:04
[隨機化(http://stackoverflow.com/a/11940592/908879)整個陣列,然後從該陣列的端部拾取更好。這裏是一個例子http://jsfiddle.net/4zEuh/(如果你好奇爲什麼從尾巴開始,那是因爲如果你從頭開始移除,整個數組每次都會將每一項移動到左側) – ajax333221 2012-08-13 21:27:10