簡體   English   中英

如果在console.log 中調用了相應的函數,如何打印標簽。 現在它不打印標簽和結果?

[英]How can I print label if the corresponding function is called in the console.log. Now its not printing the label and result?

如果在console.log 中調用了相應的函數,如何打印標簽。 現在它不打印標簽和結果? 有人可以請指教

    let num1 = 100;
    let num2 = 200;
    let text = 'add';
    calculationOfNumbers(text, num1, num2);
    
    function calculationOfNumbers(text, num1, num2) {
    if (text == 'add') {
        let label = "Adding";
        let result = addFunction(num1, num2);
        console.log(`This is : ${label}`+result);
    } else if (text == 'subtract') {
        let label = "Subtracting";
        let result = subtractFunction(num1, num2);
        console.log(`This is : ${label}`+result);
    }

}

function addFunction(num1, num2 ) {
    let result = parseInt(num1) + parseInt(num2);
    return result;
}

function subtractFunction(num1, num2) {
    let result = parseInt(num2)  - parseInt(num1) ;
    return result;
}

那些return label, result什么都不做。 和做return result 了解逗號運算符 JS 中還沒有元組數據類型。

你可以做的是:

function addFunction(num1, num2, label) {
    let result = parseInt(num1) + parseInt(num2);
    return [label, result];
}
function calculationOfNumbers(x, num1, num2) {
    let label, result;
    if (x == 'add') {
       [label, result] = addFunction(num1, num2, "adding");
    } else if (x == 'subtract') {
       [label, result] = subtractFunction(num1, num2, "subtracting");
    }
    console.log(`This is : ${label} ${result}`);
}

即,返回數組並使用解構。

甚至:

function calculationOfNumbers(x, num1, num2) {
    let result;
    if (x == 'add') {
       result = addFunction(num1, num2);
    } else if (x == 'subtract') {
       result = subtractFunction(num1, num2);
    }
    console.log(`This is: ${label} ${result}`);
}

function addFunction(num1, num2) {
    let result = parseInt(num1) + parseInt(num2);
    return label="adding", result;
}

function subtractFunction(num1, num2) {
    let result = parseInt(num2)  - parseInt(num1) ;
    return label="subtracting", result;
}

(我不是說這是最好的方法)

由於您無法在 JavaScript 中使用一個return語句返回多個值,因此您可以使用的一種選擇是返回一個object如下所示:

 let total = 0; let num1 = 100; let num2 = 200; let text = 'add'; let label = ""; calculationOfNumbers(text, num1, num2); function calculationOfNumbers(x, num1, num2) { let info; if (x == 'add') { info = addFunction(num1, num2, "adding"); } else if (x == 'subtract') { info = subtractFunction(num1, num2, "subtracting"); } console.log(`This is ${info.label} : ${info.result}`); } function addFunction(num1, num2, label) { let result = parseInt(num1) + parseInt(num2); return { label, result }; } function subtractFunction(num1, num2, label) { let result = parseInt(num2) - parseInt(num1); return { label, result }; }

請注意我如何將每個函數調用分配給變量info然后您可以分別使用info.labelinfo.results訪問所需的屬性。

您的代碼中需要修改的東西很少


 function calculationOfNumbers(x, num1, num2) {
    if (x == 'add') {
        // function is returning some values, but it was never stored somewhere to be used later
        addFunction(num1, num2, "adding");
    } else if (x == 'subtract') {
      // same situation, function is returning some values, but it was never stored somewhere to be used later
        subtractFunction(num1, num2, "subtracting");
    }
   // you are printing (result) but it was never declared before
    console.log(`This is : ${label}`+result);
}

function addFunction(num1, num2, label) {
  // it's better to use Number(num1) instead of parseInt()
    let result = parseInt(num1) + parseInt(num2);
    // you are returning label inside here, however you didn't amend the global variable result,
// also no need to pass it down to this function, the add function should be returning only the result of the calculation
    return label, result;
}

function subtractFunction(num1, num2, label) {
    let result = parseInt(num2)  - parseInt(num1) ;
    return label, result;
}

所以修改后的代碼應該如下所示:

let num1 = 100;
let num2 = 200;
let text = 'add';

calculationOfNumbers(text, num1, num2);

function calculationOfNumbers(x, num1, num2) {
  let label = x;
  let result = 0;

  if (x == 'add') {
    result = addFunction(num1, num2);
  } else if (x == 'subtract') {
    result = subtractFunction(num1, num2);
  }
  console.log(`This is : ${label}` + result);
}

function addFunction(num1, num2) {
  let result = Number(num1) + Number(num2);
  return result;
}

function subtractFunction(num1, num2) {
  let result = Number(num2) - Number(num1);
  return result;
}

暫無
暫無

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

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