簡體   English   中英

java腳本基本功能驗證題

[英]java script basic function validation question

我需要驗證驗證函數中的 val 我寫了下面的驗證函數但不起作用它給出了運行時錯誤

兩個函數 makeInputVerifier 和 main 函數已經存在。

function makeInputVerifier(minimum, maximum) {
  // write your code here
  var mini=minimum;
  var maxi=maximum;
}
function verify(val){
    if(val<mini)return "Input is less than minimum value";
    if(val>=mini && val<=maxi)return "Input is in range";
    return "Input is more than maximum value";
}


function main() {
  const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

  const min = parseInt(readLine().trim());
  const max = parseInt(readLine().trim());
  const verify = makeInputVerifier(min, max);

  const input = parseInt(readLine().trim());
  const result = verify(input);

  ws.write(`${result}\n`);
  ws.end();
}

const result = verify(input, min, max); 期待makeInputVerifier中返回一個函數const verify = makeInputVerifier(min, max); . 您的代碼不起作用,因為您沒有從 makeInputVerifier 函數返回驗證函數。

下面的代碼應該工作:

function makeInputVerifier(minimum, maximum) {
  // write your code here
  var mini=minimum;
  var maxi=maximum;

  return function verify(val){
    if(val < mini)return "Input is less than minimum value";
    if(val >= mini && val <= maxi)return "Input is in range";
    return "Input is more than maximum value";
  }
}

verify 函數不知道 mini 和 maxi 值,因為它們不在同一范圍內。 嘗試將值傳遞給函數,如下所示:

function makeInputVerifier(minimum, maximum) {
  // write your code here
  var mini=minimum;
  var maxi=maximum;
}
function verify(val, mini, maxi){
    if(val<mini)return "Input is less than minimum value";
    if(val>=mini && val<=maxi)return "Input is in range";
    return "Input is more than maximum value";
}


function main() {
  const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

  const min = parseInt(readLine().trim());
  const max = parseInt(readLine().trim());
  const verify = makeInputVerifier(min, max);

  const input = parseInt(readLine().trim());
  const result = verify(input,min, max);

  ws.write(`${result}\n`);
  ws.end();
}

或者像這樣在主函數的范圍內聲明值:

function makeInputVerifier(minimum, maximum) {
  // write your code here
  mini=minimum;
  maxi=maximum;
}
function verify(val, mini, maxi){
    if(val<mini)return "Input is less than minimum value";
    if(val>=mini && val<=maxi)return "Input is in range";
    return "Input is more than maximum value";
}


function main() {
  const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

  const min = parseInt(readLine().trim());
  const max = parseInt(readLine().trim());
  var mini = 0;
  var maxi = 0;
  const verify = makeInputVerifier(min, max);

  const input = parseInt(readLine().trim());
  const result = verify(input,min, max);

  ws.write(`${result}\n`);
  ws.end();
}

這應該適用於所有測試用例!

  function makeInputVerifier(minimum, maximum) {
      // write your code here
      var mini=minimum;
      var maxi=maximum;
    }
    function verify(val, mini, maxi){
        if(val<mini)return "Input is less than minimum value";
        if(val>=mini && val<=maxi)return "Input is in range";
   }
 function main() {
  const ws = fs.createWriteStream(process.env.OUTPUT_PATH);

  const min = parseInt(readLine().trim());
  const max = parseInt(readLine().trim());
  const verif = makeInputVerifier(min, max);

  const input = parseInt(readLine().trim());
  const result = verify(input,min, max);

  ws.write(`${result}\n`);
  ws.end();
}
 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM