在Javascript中返回两个值-return[foo,bar]vs return foo+&引用&引用+;酒吧

在Javascript中返回两个值-return[foo,bar]vs return foo+&引用&引用+;酒吧,javascript,return,Javascript,Return,我正在经历一些黑客的挑战,这出现在我下面的函数中 返回foo+“”+bar的第二种方法给了我一个错误,但第一种方法有效。为什么?返回这里的两种方法有什么不同 编辑:-评论人兴趣的完整来源 'use strict'; const fs = require('fs'); process.stdin.resume(); process.stdin.setEncoding('utf-8'); let inputString = ''; let currentLine = 0; process.s

我正在经历一些黑客的挑战,这出现在我下面的函数中

返回foo+“”+bar的第二种方法给了我一个错误,但第一种方法有效。为什么?返回这里的两种方法有什么不同

编辑:-评论人兴趣的完整来源

'use strict';

const fs = require('fs');

process.stdin.resume();
process.stdin.setEncoding('utf-8');

let inputString = '';
let currentLine = 0;

process.stdin.on('data', inputStdin => {
    inputString += inputStdin;
});

process.stdin.on('end', _ => {
    inputString = inputString.trim().split('\n').map(str => str.trim());

    main();
});

function readLine() {
    return inputString[currentLine++];
}

/*
 * Complete the solve function below.
 */
function solve(a0, a1, a2, b0, b1, b2) {
    /*
     * Write your code here.
     */
    let aScore = 0;
    let bScore = 0;

    function compare(valA, valB){
        if (valA < valB){
            bScore += 1;
        }
        else if (valA == valB){
        }
        else {
            aScore += 1;
        }
    }

    compare(a0, b0);
    compare(a1, b1);
    compare(a2, b2);
    return [aScore, bScore];

}

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

    const a0A1A2 = readLine().split(' ');

    const a0 = parseInt(a0A1A2[0], 10);

    const a1 = parseInt(a0A1A2[1], 10);

    const a2 = parseInt(a0A1A2[2], 10);

    const b0B1B2 = readLine().split(' ');

    const b0 = parseInt(b0B1B2[0], 10);

    const b1 = parseInt(b0B1B2[1], 10);

    const b2 = parseInt(b0B1B2[2], 10);

    let result = solve(a0, a1, a2, b0, b1, b2);

    ws.write(result.join(" ") + "\n");

    ws.end();
}
“严格使用”;
常数fs=要求('fs');
process.stdin.resume();
进程标准设置编码('utf-8');
让inputString='';
设currentLine=0;
process.stdin.on('data',inputStdin=>{
inputString+=inputStdin;
});
process.stdin.on('end',_979;=>{
inputString=inputString.trim().split('\n').map(str=>str.trim());
main();
});
函数readLine(){
返回inputString[currentLine++];
}
/*
*完成下面的求解函数。
*/
函数解算(a0、a1、a2、b0、b1、b2){
/*
*在这里编写代码。
*/
设aScore=0;
设bScore=0;
功能比较(valA、valB){
if(valA
使用
返回[aScore,bScore]
返回一个包含两个元素的数组,而
返回aScore+“”+bScore
返回一个字符串

返回foo+“”+bar给我一个错误
-什么错误?你是如何调用solve的?你对结果做了什么?这两个
return
方法都起作用-“没有来自stdout的输出”-但其中还有其他hackerrank代码。我的问题是,如果打印到控制台,两个返回值看起来是相同的,但它们必须不同。要么就是在幕后对hackerrank进行了一些单元测试。
没有来自stdout的输出
-这听起来不像我见过的任何javascript错误。。。这是什么javascript环境?当然,返回的值是不同的。。。一个是
数组
,另一个是
字符串
是的,很抱歉,这可能只是来自他们平台的自定义错误。但它是在一个节点环境中。我将完整的源代码编辑到我的帖子中供您查看。错误来自行-ws.write(result.join(“”+“\n”);-在底部,当我尝试替代返回方法时。它是否与“严格使用”有关?谢谢Pramesh-我怀疑是这样的。