我正在开展一项名为“比较黑客排名中的三元组”的挑战,其中该函数接受两个数组作为参数,您的目的是比较索引并为数字较高的组奖励一分,并返回每个数组的分数.
我的代码如下:
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);
我收到错误:
类型错误:无法读取未定义的属性(读取“拆分”)
我尝试搜索此错误以获取更多信息,但似乎没有看到与我的问题相关的任何内容。
您在
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});