2013-09-25 2 views
0

호출 된 변수가 현재 사용 중인지 확인하기 위해 스크립트를 사용하려고합니다. 다음은 코드 예제입니다.컬렉션의 어떤 변수가 사용되고 있는지 어떻게 확인합니까?

function tellAJoke() 
{ 
var collective = ["variable 1", 
      "Variable 2", 
      "Variable 3", 
      "Variable 4"] 
var destination = document.getElementById('destination') 
destination.innerHTML = collective[Math.floor(Math.random() * collective.length)]; 
} 

어떤 변수가 사용되고 있는지 어떻게 확인할 수 있습니까? 이는 같은 변수가 다시 호출되는 것을 방지하기위한 것입니다.

+2

합니다. – Mathletics

+0

배열에서 요소를 선택하고 있습니다. 그 때 요소가 무엇인지 알 수 없습니까? 중복 선택을 방지해야하는 경우 사용 후 어레이에서 요소를 간단히 제거하십시오. –

+0

@Mathletics 나는 그가 tellAJoke가 호출 될 때마다 또 다른 농담을하고 싶다고 생각한다. 모든 농담은 배열에 있기 때문에 그가 구현 한 임의의 물건은 동일한 농담을 두 번 연속적으로 반환 할 수 있습니다. – MichaC

답변

0

매번 새로운 값을 찾으려고하는 대신 페이지로드시 임의로 배열을 임의로 섞은 다음 반복합니다. 이렇게하면 페이지가로드 될 때마다 순서가 달라 지지만 한 번에 두 번 똑같은 것을 표시하지 않게됩니다. 당신이 배열을 수행하는 경우, 단순히 처음부터

작은 예 시작 : 당신이 무엇을 요구 아무 생각 http://jsfiddle.net/Elak/8JsD4/

var collective = ["variable 1", 
     "Variable 2", 
     "Variable 3", 
     "Variable 4"] 

var shuffle = function (arr) { 
    for (var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x); 
    return arr; 
} 

var newCol = shuffle(collective); 
var index = 0; 
setInterval(function() { 
    if (index >= newCol.length) index = 0; 
    $("#out").text(newCol[index]); 
    index++; 
}, 1000); 
관련 문제