2013-01-07 1 views
0

만약 내가 그 문자열 중 하나인지 확인하고 그 빈 경우지만 나는 그것을 정확하게 단어를 어떻게 해야할지 모르겠다 if 문이 있습니다. 이것은 기본이지만, 나는이 단어를 Google에서 어떻게 발음해야할지 모르겠다. 많은 감사합니다!IF/OR에서 여러 조건을 검사하고 비좁은 자바 스크립트입니다

if(condition1 == "string" || condition2 == "string" && is empty){ 
    do this 
} 
+1

무엇이 비어 있는지 확인하려고합니까? –

+1

'condition1'은 무엇을 의미합니까? – bukart

+0

주변 코드를 게시하여 달성하려는 목표를 분명히 알 수 있습니까? – Stuart

답변

0

편집 : http://jsfiddle.net/3AXN7/4/

당신이 확인되는 두 개 이상의 열이 있기 때문에,이 모두를 넣어 훨씬 더 명확하고 유지 보수의 : 당신의 jsFiddle

//object drill down 
var colField = evt.cell.field; //this gives me the column names of the grid in dojo 
var mystring = item[colField] || ""; // gets item based on colField property 
var fields = ["Owner", "Home", "Realtor", "Broker"]; // fields to check colField against 

//here is the conditional statement. if column Owner, Home, Realtor or Broker property is empty in that object do the following 
if(fields.indexOf(colField) !== -1 && mystring === "") { 

} 

업데이트 jsFiddle에 참조 업데이트 배열의 열 이름을 검사 한 다음 if 문에 모든 조건을 적용하는 대신 colField가 배열에 있는지 확인하십시오.

유일한 문제는 indexOf가 IE6-8에서 지원되지 않는다는 것입니다. 이 기능이 모든 브라우저에서 작동하는지 확인하려면 indexOf의 기본 구현을 제공해야합니다. 다음 코드로이 작업을 수행 할 수 있습니다.

if (!Array.prototype.indexOf) { 
    Array.prototype.indexOf = function (searchElement /*, fromIndex */) { 
    "use strict"; 

    if (this === void 0 || this === null) 
     throw new TypeError(); 

    var t = Object(this); 
    var len = t.length >>> 0; 
    if (len === 0) 
     return -1; 

    var n = 0; 
    if (arguments.length > 0) { 
     n = Number(arguments[1]); 
     if (n !== n) 
     n = 0; 
     else if (n !== 0 && n !== (1/0) && n !== -(1/0)) 
     n = (n > 0 || -1) * Math.floor(Math.abs(n)); 
    } 

    if (n >= len) 
     return -1; 

    var k = n >= 0 
      ? n 
      : Math.max(len - Math.abs(n), 0); 

    for (; k < len; k++) { 
     if (k in t && t[k] === searchElement) 
     return k; 
    } 

    return -1; 
    }; 
} 
+0

이것은 훌륭하게 작동하지만 유용하다고 표시 할 것입니다. 그러나 여러 개의 "조건"이 비어있는 "mystrings"을 가질 수 있다고 생각하지 않았다고 생각합니다. 그래서 어떻게 확인할 수 있습니까? – pcproff

+0

잘 모르겠다. if 문 전체가 true가 되려면 일부 조건에서 'mystring'을 비워 둘 필요가 없다고 말하는가? –

+0

jsFiddle 코드에 맞게 원래 답변이 업데이트되었습니다. –

0
if((typeof condition1 == 'string' && condition1.length == 0) || (typeof condition2 == 'string' && condition2.length == 0)) 

그을 부셔은 (typeof condition1 == 'string' && condition1.length == 0) 단순히 변수 문자열이 있는지 확인하고 0의 길이가 거짓으로 평가되면, 그 조건 2 문자열 있는지 확인하고 길이를 갖는다 어느 쪽의 문장이 true의 경우, if 문은 true를 돌려줍니다.

+0

왜 'condition1 === ""'? 'typeof' 체크는 필요 없습니다. – Alnitak

+0

@Alnitak 질문은 형식이 명확하지 않고 길이를 검사하는 것이 적응 가능한 대답입니다. OP가 실제로 더 나은 해결책 인 빈 문자열을 명시 적으로 찾고 있다면. :) – Snuffleupagus

+0

이것이 내가 확인하는 것입니다 :'if (variable == value1 && mystring.value == "") || (variable2 == value2 && mystring.value == "") {do this}'나를 위해 작동하지 않습니다. – pcproff

관련 문제