-6

条件が満たされた場合はtrue、満たされていない場合はfalseの値を返す関数がありますが、エラーが発生した場合は文字列メッセージを返すこともできます。

文字列値をどちらかと間違えることなく、通常の状態で真と偽のブール値を区別する必要があります。私の戦略はparseBoolean()、ブール入力が渡されたときに真のブール型のtrue / false値を返すfalseが、文字列が渡されたときにブール型ではない「偽の」値を返す関数を使用することです。

function validate(kkk)
{
  //... some check that validates 
  return true;
  //... some check that doesn't validate
  return false;
  //... failure - return explanation
  return 'Error Message jjjjjjjj';
}

function usingit(data)
{
  if(parseBoolean(validate(data)) != false)
  {
    /// the value is Boolean true
  }
  else
  {
    if(parseBoolean(validate(data)) === false)
    {
      /// the value is Boolean false
    }
    else
    {
      /// the value is false but not of a Boolean type 
      /// so we will display it as the error message text.
    }
  }
}

parseBoolean()...しかし、このように動作する関数を作成する方法がわかりません。何か案は?

4

3 に答える 3

6

これによれば:

@Esailijaなぜ意味がないのですか?trueの場合はtrueを返し、falseの場合はfalseを返し、'somestring'の場合もfalseを返します。それを得る?–登録ユーザー31秒前

あなたが欲しい

function parseBoolean(value) {
    return typeof value == "boolean" ? value : false;
}

しかし、これは明らかに運命のテストに合格しません。


このコードはすべてのテストに合格します。

function parseBoolean(bool) {
    return typeof bool == "boolean" ? bool : 0;
}

if( parseBoolean('anystring') == false ) {
    alert("");
}

if( parseBoolean('anystring') !== false ) {
    alert("");
}

if( parseBoolean(true) ) {
    alert('');
}

if( !parseBoolean(false) ) {
    alert('');
}
于 2012-06-20T22:26:51.480 に答える
2

何が誤りを構成しますか?文字列をブール値に変換する必要がある場合は、falseに変換する必要がある文字列のテーブルを参照します。

var falsableStrings = {
    "fff": true,
    "false": true
}

function isFalseString(str) {
    return ! falsableStrings[str.toLowerCase()]
}

http://jsfiddle.net/n8dEF/

別の方法は、正規表現を使用することです。

function isFalseString(str) {
    return ! (str == "" || str.match("(fff|false)"))
}

http://jsfiddle.net/n8dEF/2/

于 2012-06-20T22:12:51.240 に答える
0

それはあなたが探しているものですか?

var parseBooleanGenerator = function(aPerfectString) {
  return function(someStringFromWild) { 
    return aPerfectString === someStringFromWild 
  };
};

var goodString = 'FFF';
var badString = 'FfF';

console.log(parseBooleanGenerator('FFF')(goodString)); // true
console.log(parseBooleanGenerator('FFF')(badString)); // false

... また ...

var checkForFFF = parseBooleanGenerator('FFF');
console.log(checkForFFF(goodString)); // true
console.log(checkForFFF(badString)); // false
于 2012-06-20T22:08:34.843 に答える