1
/*
CS 22A
Assignment 2
Question 2

Write a function snooze that takes on parameter, day, and
returns a boolean: true if day is a weekend, false if otherwise.
If invalid argument/no argument, return false.
The parameter day may be lowercase, uppercase, or mixed.
*/

function snooze(day){
  day = day || 0;

  var Sat = 'Saturday';
  var Sun = 'Sunday';

  if (day === Sat){
    return true;
  } else if (day === Sat.toUpperCase()){
    return true;
  } else if (day === Sat.toLowerCase()){
    return true;
  } else if (day === Sun){
    return true;
  } else if (day === Sun.toUpperCase()){
    return true;
  } else if (day === Sun.toLowerCase()){
    return true;
  } else {
    return false;
  }
}

console.log(snooze('Monday')) // false
console.log(snooze('tuesday')) // false
console.log(snooze('SUNDAY')) // true
console.log(snooze('Saturday')) // true
console.log(snooze('October')) // false
console.log(snooze()) // false
console.log(snooze('SatUrDaY')) // true

こんにちは、みんな。私はプログラミングに少し慣れていないので、現在学校で JavaScript のクラスを取っています。今週の課題の 1 つは、コードの上のコメントで説明したように、パラメーターを取り、ブール値を返す関数を作成することです。

私の問題は、大文字と小文字が混在する入力が小文字/大文字の対応物として理解されるようにする方法がわからないことです。私はいくつかのグーグルを行いましたが、ほとんどの結果は、まだカバーしていない概念である正規表現を使用するように指示しており、そうすると問題が発生します。どうすればこれにアプローチできるかについて、誰かが光を当てることができますか?

また、私がそうしている間に、誰かがこの課題の最後の質問の正しい道を教えてくれませんか?

ここでのタスクは、word と char の 2 つのパラメーターを取る関数 count を定義することです。この関数は、指定された単語にその文字が出現する回数を返します。両方のパラメーターが小文字の文字列であると想定できます。

繰り返しますが、私はその問題に対処する方法をグーグルで検索しましたが、ほとんどの結果は、正規表現または配列を使用するように指示しています。これは、クラスでまだカバーしていない概念であり、そうすると問題が発生します。どんな助けでも大歓迎です。再度、感謝します!

4

5 に答える 5

4

簡単に、両方とも小文字に強制します。

if (day.toLowerCase() === Sat.toLowerCase()) {
    //... do stuff
}
//...
于 2015-04-21T05:19:02.840 に答える
2

コードを に変更してから、他の大文字と小文字の変換をすべて削除すると、すべてが機能しますday = day.toLowerCase();var sat = "saturday";

于 2015-04-21T05:21:47.267 に答える
2

大文字と小文字を区別しない比較では、両方の文字列を変換して同じ大文字と小文字を比較します。

于 2015-04-21T05:18:52.630 に答える
1

次のようにする必要があります。

Question 2

Write a function snooze that takes on parameter, day, and
returns a boolean: true if day is a weekend, false if otherwise.
If invalid argument/no argument, return false.
The parameter day may be lowercase, uppercase, or mixed.
*/

function snooze(day){
  day = (day || "").toString().toLowerCase();

  var Sat = 'saturday';
  var Sun = 'sunday';

  if (day === Sat){
    return true;
  } else if (day === Sun){
    return true;
  } else {
    return false;
  }
}

console.log(snooze('Monday')) // false
console.log(snooze('tuesday')) // false
console.log(snooze('SUNDAY')) // true
console.log(snooze('Saturday')) // true
console.log(snooze('October')) // false
console.log(snooze()) // false
console.log(snooze('SatUrDaY')) // true

最後の質問については、for ループを使用してindexOf()、インデックス >=0 を 'fromIndex' パラメータに戻す方法があります。developer.mozilla.org/en/docs/Web/JavaScript/Reference/… もう 1 つの方法は、次のように文字を分割することです。"ababccb".split("b").length-1

于 2015-04-21T05:21:00.370 に答える
1

/*
CS 22A
Assignment 2
Question 2

Write a function snooze that takes on parameter, day, and
returns a boolean: true if day is a weekend, false if otherwise.
If invalid argument/no argument, return false.
The parameter day may be lowercase, uppercase, or mixed.
*/

function snooze(day){
  day = ('' + day).toLowerCase();  // Converting day to string

  var Sat = 'saturday';
  var Sun = 'sunday';

  if (day === Sat || day === Sun){
    return true;
  } else {
    return false;
  }
}

console.log(snooze('Monday')) // false
console.log(snooze('tuesday')) // false
console.log(snooze('SUNDAY')) // true
console.log(snooze('Saturday')) // true
console.log(snooze('October')) // false
console.log(snooze()) // false
console.log(snooze('SatUrDaY')) // true

上記のようにするだけです。文字列を小文字または大文字に変換して、入力形式が異なっていても心配する必要がないようにする

于 2015-04-21T05:21:31.273 に答える