Javascript 检查数字的最后一位
我用javascript做了一些基本的线性搜索练习(我已经编写了2个月左右),偶然发现了以下问题: 我从用户那里得到一个数组的输入,程序告诉我他们决定检索的数字在数组的哪个位置。我想做一些干净的事情,比如“Javascript 检查数字的最后一位,javascript,arrays,numbers,Javascript,Arrays,Numbers,我用javascript做了一些基本的线性搜索练习(我已经编写了2个月左右),偶然发现了以下问题: 我从用户那里得到一个数组的输入,程序告诉我他们决定检索的数字在数组的哪个位置。我想做一些干净的事情,比如“我为您检索了数字69。它位于您创建的输入数组的第22位。” 所以我想检查数字的最后一位,并相应地用X1st、X2nd和x3d或Xth进行响应。 但我不知道如何检查所需数字的最后一位。我是否应该将其转换为字符串,然后使用.pop()函数进行检查 我只解释了30个输入。但我希望它的工作不依赖于一定
我为您检索了数字69。它位于您创建的输入数组的第22位。
”
所以我想检查数字的最后一位,并相应地用X1st、X2nd和x3d或Xth进行响应。
但我不知道如何检查所需数字的最后一位。我是否应该将其转换为字符串,然后使用.pop()函数进行检查
我只解释了30个输入。但我希望它的工作不依赖于一定数量的输入
let inputsArray = [];
let totalInputs;
do
{
totalInputs = Number(prompt("How many number do you want to input? (max. 30)"));
}
while(totalInputs >= 31 || totalInputs <= 0)
for(i = 0; i < totalInputs; i++) //Get the inputs from the user and add them into the inputsArray
{
let input = Number(prompt("Type a number"));
inputsArray.push(input);
}
let desiredNum = Number(prompt(`What number do you want to retrieve? (Select from ${inputsArray})`));
let validator = 0;
for(i = 0; i < inputsArray.length; i++) //Check on each index of the inputsArray for the number prompted
{
if(inputsArray[i] == desiredNum)
{
if (i + 1 == 1 || i + 1 == 21) //Tell the user which position in the array the prompted number was
{
alert(`I've retrieved the number ${desiredNum} for you. It was on the ${i+1}st position on the array of numbers you created.`);
validator++;
}
else if (i + 1 == 2 || i + 1 == 22)
{
alert(`I've retrieved the number ${desiredNum} for you. It was on the ${i+1}nd position on the array of numbers you created.`);
validator++;
}
else if (i + 1 == 3 || i + 1 == 23)
{
alert(`I've retrieved the number ${desiredNum} for you. It was on the ${i+1}rd position on the array of numbers you created.`);
validator++;
}
else
{
alert(`I've retrieved the number ${desiredNum} for you. It was on the ${i+1}th position on the array of numbers you created.`);
validator++;
}
}
}
if(validator != 1) //If the desiredNum is invalid
{
alert("The number you specified does not exist in the array.");
}
let inputsArray=[];
让所有的输入;
做
{
totalInputs=数字(提示(“您要输入多少数字?(最多30)”);
}
虽然(totalInputs>=31 | | totalInputs是,但最简单的方法是转换为字符串:
var str_number = number.toString(); //converts number to string
var last_char = str_number.slice(-1); //gets last character
var last_digit = +(last_char); //convert last character to number
是的,最简单的方法就是转换为字符串:
var str_number = number.toString(); //converts number to string
var last_char = str_number.slice(-1); //gets last character
var last_digit = +(last_char); //convert last character to number
如果你尝试一个模运算符,比如
last_digit = number % 10;
如果你尝试一个模运算符,比如
last_digit = number % 10;
不需要转换为字符串。让我们用数字来说明我们要查找的内容。大小写可以是0、1、2或其他;计算此值时不需要使用+1
您可以在此处使用%
(模)来检查最后一位数字是什么。确保它避免了带有额外条件的第12位边缘情况
这将允许发布单个响应,而不是查看多个案例
var desiredNum=20;
变量后缀=[“st”、“nd”、“rd”];
变量后缀=num=>(num<4 | | num>13)和&后缀[num%10]?后缀[num%10]:“th”;
对于(设i=0;i<56;i+=11)
console.log(`I已为您检索到数字${desiredNum}。它位于您创建的数字数组上的${(I+1)+后缀(I)}位置。`);
无需转换为字符串。让我们只处理我们正在寻找的数字。大小写为0、1、2或其他;您使用的+1对于计算这个数字是不必要的
您可以在此处使用%
(模)来检查最后一位数字是什么。确保它避免了带有额外条件的第12位边缘情况
这将允许发布单个响应,而不是查看多个案例
var desiredNum=20;
变量后缀=[“st”、“nd”、“rd”];
变量后缀=num=>(num<4 | | num>13)和&后缀[num%10]?后缀[num%10]:“th”;
对于(设i=0;i<56;i+=11)
console.log(`I已为您检索到数字${desiredNum}。它位于您创建的数字数组的${(I+1)+后缀(I)}位置。`);
将数字转换为字符串,然后使用string.indexOf()
找到所需数字的位置。将数字转换为字符串,然后使用string.indexOf()
找到所需数字的位置。这比不必要的转换要好得多!这比不必要的转换要好得多!