2014-01-23 3 views
1

자바 스크립트 관련 질문.Javascript 배열에 부울 값을 설정하는 것이 좋습니까?

제목에 부울 값 (true 또는 false)을 배열에 설정하고 그 중 하나가 배열에서 나중에 종료되는지 확인하는 것이 좋습니까?

true 또는 false 중 하나를 반환하는 함수가 있다고 가정 해 보겠습니다.

샘플 코드 : (jQuery를 사용하여)

var abort = [];//make an empty array 

function someFunc() { 
    var returnVal = false; 

    if(some condition) { 
     returnVal = true; 
     return returnVal; 
    } 

    return returnVal; 
} 

someElement.each(function() { 
    abort.push(someFunc()); //push true or false in array 
}); 
//abort array will look eventually something like... 
//[true, false, true, false, false, true, ...] 

//check if `true` exists in array jQuery approach 
var stop = ($.inArray(true, abort) > -1) ? true : false ; 

if(stop) { 
    console.log('TRUE FOUND AT LEAST ONE IN ARRAY!'); 
} 

이 확인 작업 보인다. 이것은 올바른 방법 인 경우 하지만 난 그냥 당신이 모든 기능을 호출하지 않으려면 기능 중 하나가 true을 반환하는 경우

+0

배열에 부울을 추가하는 것이 좋지 않다고 생각하는 이유가 무엇입니까? 어떤 값을 배열에 넣을 수 있습니다! –

+0

완벽하게 좋습니다. 하지만,'function somefunc() {return (some condition)}'로 줄이는 것이 좋습니다. 그리고 더 일반적인 : 나중에'중단'에서 다른'부울'을 사용하고 있습니까? 그렇지 않다면, 하나의 전역으로 충분하다.'someElement.each (function() {if (! stop) {stop = someFunc()};});이 경우'$ .inArray'를 대체한다. – virtualnobi

+0

몇 개의 부울이 필요합니까? 31 정수 이하를 사용하는 경우 단일 정수를 사용하는 것이 편리 할 수 ​​있고 뛰어난 성능을 얻을 수 있기 때문입니다. 그 질문에 대한 내 대답을 볼 수 있습니다 : http://stackoverflow.com/questions/18547164/how-to-use-unit8array-in-javascript/18548027#18548027 – GameAlchemist

답변

0

는이

같은 기본 Array.prototype.some 방법을 사용할 수 있습니다 ... 궁금 예를 들어

if (someElement.some(function(currentObject) { 
    return <a bool value>; 
}))) { 
    console.log("Value exists"); 
} else { 
    console.loe("Value doesn't exist"); 
} 
,

var someArray = [1,5,6,8,3,8]; 

if(someArray.some(function(currentObject) { 
    return currentObject === 3; 
})) { 
    console.log("3 exists in the array"); 
} else { 
    console.log("3 does not exist in the array"); 
} 

인쇄 할

3 exists in the array 
01 23,516,

모든 결과에 관계없이 모든 기능을 실행할 수 있지만 그 중이어야 하나가 true를 반환 알고 싶은 경우에, 당신이

var someArray = [1,5,6,8,4,8]; 

function printer(currentObject) { 
    console.log(currentObject); 
    return currentObject === 3; 
} 

if(someArray.reduce(function(result, currentObject) { 
    return result || printer(currentObject); 
}, false)) { 
    console.log("3 exists in the array"); 
} else { 
    console.log("3 does not exist in the array"); 
} 

출력처럼 Array.prototype.reduce를 사용할 수있는 경우

1 
5 
6 
8 
4 
8 
3 does not exist in the array 
관련 문제