为什么Split()没有被正确读取?

问题描述 投票:0回答:1

我正在开展一项名为“比较黑客排名中的三元组”的挑战,其中该函数接受两个数组作为参数,您的目的是比较索引并为数字较高的组奖励一分,并返回每个数组的分数.

我的代码如下:

let aTemp = readLine().split(' ');
    let a0 = parseInt(aTemp[0]);
    let a1 = parseInt(aTemp[1]);
    let a2 = parseInt(aTemp[2]);
    let bTemp = readLine().split(' ');
    let b0 = parseInt(bTemp[0]);
    let b1 = parseInt(bTemp[1]);
    let b2 = parseInt(bTemp[2]);
    
    let aScore = 0;
    let bScore = 0;
    
    if(a0 > b0){
        a++;
    };
    if (a0 < b0){
        b++;
    };
    if(a1 > b1){
        a++;
    };
    if (a1 < b1){
        b++;
    };
    if(a2 > b2){
        a++;
    };
    if (a2 < b2){
        b++;
    };
    console.log(aScore + ' ' + bScore);

我收到错误:

类型错误:无法读取未定义的属性(读取“拆分”)

我尝试搜索此错误以获取更多信息,但似乎没有看到与我的问题相关的任何内容。

javascript node.js split
1个回答
0
投票

您在

readLine
函数中缺少一个参数。您只需使用
readLine('Write something divided by spaces')
即可。

您还可以重构代码使其变得更简单。这是我的看法。

const aTemp = input('Write something divided by spaces').split(' ');
const bTemp = input('Write something divided by spaces').split(' ');

let aScore = 0;
let bScore = 0;

if (aTemp.length !== bTemp.length){
    throw Error('The array lengths must match.');
}

aTemp.forEach((a, index) => {
    const b = bTemp[index];
    if (a > b) aScore++;
    if (a < b) bScore++;
});

console.log({aScore, bScore});
    
© www.soinside.com 2019 - 2024. All rights reserved.