만약 내가 그 문자열 중 하나인지 확인하고 그 빈 경우지만 나는 그것을 정확하게 단어를 어떻게 해야할지 모르겠다 if 문이 있습니다. 이것은 기본이지만, 나는이 단어를 Google에서 어떻게 발음해야할지 모르겠다. 많은 감사합니다!IF/OR에서 여러 조건을 검사하고 비좁은 자바 스크립트입니다
if(condition1 == "string" || condition2 == "string" && is empty){
do this
}
만약 내가 그 문자열 중 하나인지 확인하고 그 빈 경우지만 나는 그것을 정확하게 단어를 어떻게 해야할지 모르겠다 if 문이 있습니다. 이것은 기본이지만, 나는이 단어를 Google에서 어떻게 발음해야할지 모르겠다. 많은 감사합니다!IF/OR에서 여러 조건을 검사하고 비좁은 자바 스크립트입니다
if(condition1 == "string" || condition2 == "string" && is empty){
do this
}
편집 : 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;
};
}
이것은 훌륭하게 작동하지만 유용하다고 표시 할 것입니다. 그러나 여러 개의 "조건"이 비어있는 "mystrings"을 가질 수 있다고 생각하지 않았다고 생각합니다. 그래서 어떻게 확인할 수 있습니까? – pcproff
잘 모르겠다. if 문 전체가 true가 되려면 일부 조건에서 'mystring'을 비워 둘 필요가 없다고 말하는가? –
jsFiddle 코드에 맞게 원래 답변이 업데이트되었습니다. –
if((typeof condition1 == 'string' && condition1.length == 0) || (typeof condition2 == 'string' && condition2.length == 0))
그을 부셔은 (typeof condition1 == 'string' && condition1.length == 0)
단순히 변수 문자열이 있는지 확인하고 0의 길이가 거짓으로 평가되면, 그 조건 2 문자열 있는지 확인하고 길이를 갖는다 어느 쪽의 문장이 true의 경우, if 문은 true를 돌려줍니다.
왜 'condition1 === ""'? 'typeof' 체크는 필요 없습니다. – Alnitak
@Alnitak 질문은 형식이 명확하지 않고 길이를 검사하는 것이 적응 가능한 대답입니다. OP가 실제로 더 나은 해결책 인 빈 문자열을 명시 적으로 찾고 있다면. :) – Snuffleupagus
이것이 내가 확인하는 것입니다 :'if (variable == value1 && mystring.value == "") || (variable2 == value2 && mystring.value == "") {do this}'나를 위해 작동하지 않습니다. – pcproff
무엇이 비어 있는지 확인하려고합니까? –
'condition1'은 무엇을 의미합니까? – bukart
주변 코드를 게시하여 달성하려는 목표를 분명히 알 수 있습니까? – Stuart