Javascript 按顺序排列参数,并根据顺序打印数字

Javascript 按顺序排列参数,并根据顺序打印数字,javascript,Javascript,所以我是Javascript新手,刚刚完成了一个小的免费在线速成课程,涵盖了基本的基础知识,但我仍然相当无知。 找到了TwilioQuest,它可以解决问题,让玩家以游戏的形式解决问题。 有一个问题让我任由同样的11行代码摆布。 任务是编写一个脚本,该脚本将包含两个命令行参数——一对字符串,应该比较它们,以确定哪个字符串按字母顺序排在第一位(字母大小写并不重要)。脚本应按字母顺序确定第一个字符串是在第二个字符串之前、之后还是在第二个字符串的相同位置(等于)。对于每种情况,都应该使用console

所以我是Javascript新手,刚刚完成了一个小的免费在线速成课程,涵盖了基本的基础知识,但我仍然相当无知。 找到了TwilioQuest,它可以解决问题,让玩家以游戏的形式解决问题。 有一个问题让我任由同样的11行代码摆布。 任务是编写一个脚本,该脚本将包含两个命令行参数——一对字符串,应该比较它们,以确定哪个字符串按字母顺序排在第一位(字母大小写并不重要)。脚本应按字母顺序确定第一个字符串是在第二个字符串之前、之后还是在第二个字符串的相同位置(等于)。对于每种情况,都应该使用console.log打印一个数字。 当第一个参数在字母表中早于第二个参数时,脚本应打印-1。 当第一个参数与第二个参数相同时,脚本应打印0。 当第一个参数在字母表中晚于第二个参数时,函数应打印1

这就是我现在所拥有的,我被告知这是错误的,或者它不起作用

const firstValue = process.argv[2];
const secondValue = process.argv[3]; 
 if ((firstValue.toLowerCase() < secondValue.toLowerCase())) {
        console.log(-1)
};
 if ((firstValue > secondValue)) {
            console.log(1);
};
 if ((firstValue.ignoreCase == secondValue.ignoreCase)) {
        console.log(0);
};
const firstValue=process.argv[2];
const secondValue=process.argv[3];
if((firstValue.toLowerCase()第二个值)){
控制台日志(1);
};
if((firstValue.ignoreCase==secondValue.ignoreCase)){
控制台日志(0);
};
我已经尝试嵌套条件运算符,但仍然被告知其错误

您可以使用charCodeAt(),它提供字符串的ascii值

const firstValue = process.argv[2];
const secondValue = process.argv[3]; 
firstValue.toLowerCase()
 secondValue.toLowerCase()
 if ((firstValue.charCodeAt(0) < secondValue.charCodeAt(0))) {
    console.log(-1)
  };
 if ((firstValue.charCodeAt(0) > secondValue.charCodeAt(0))) {
        console.log(1);
  };
 if ((firstValue.charCodeAt(0) == secondValue.charCodeAt(0))) {
    console.log(0);
  };
const firstValue=process.argv[2];
const secondValue=process.argv[3];
firstValue.toLowerCase()
secondValue.toLowerCase()
if((firstValue.charCodeAt(0)secondValue.charCodeAt(0))){
控制台日志(1);
};
if((firstValue.charCodeAt(0)=secondValue.charCodeAt(0))){
控制台日志(0);
};

希望这能解决您的问题

您只是在第一种情况下进行不区分大小写的比较
toLowerCase()
不会修改字符串,因此需要在所有比较中进行修改

但如果在分配变量时只执行一次,则会更容易

const firstValue = process.argv[2].toLowerCase();
const secondValue = process.argv[3].toLowerCase(); 

if (firstValue < secondValue) {
    console.log(-1);
} else if (firstValue == secondValue) {
    console.log(0);
} else {
    console.log(1);
}
const firstValue=process.argv[2].toLowerCase();
const secondValue=process.argv[3].toLowerCase();
如果(第一个值<第二个值){
控制台日志(-1);
}else if(firstValue==secondValue){
控制台日志(0);
}否则{
控制台日志(1);
}

当您有一系列互斥测试时,您应该使用
else if
else
,这样它就不会执行不必要的测试。

为什么只比较第一个字符?问题陈述说比较整个字符串,并且不需要获取字符代码。比较字符串是通过比较它们的代码来实现的。谢谢你,这真的帮助我看到了我犯的严重错误,我永远欠你的债。