Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 根据项目索引追加顺序后缀(';-st';、';-nd';、';-rd';、';-th';)_Javascript_Arrays_String - Fatal编程技术网

Javascript 根据项目索引追加顺序后缀(';-st';、';-nd';、';-rd';、';-th';)

Javascript 根据项目索引追加顺序后缀(';-st';、';-nd';、';-rd';、';-th';),javascript,arrays,string,Javascript,Arrays,String,比如说,我有一个选项值数组,比如: var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]; 我需要将其转换为格式化字符串数组,如: var result = ['1-st option is "a"', '2-nd option is "b", '3-rd option

比如说,我有一个选项值数组,比如:

var arr = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
我需要将其转换为格式化字符串数组,如:

var result = ['1-st option is "a"', '2-nd option is "b", '3-rd option is "c"', '4-th option is "d"',...];
我通过以下方式实现了大部分目标:

var result = [];
for(var i = 0; i < arr.length; i++){
    result.push((i+1)+' option is "'+arr[i]+'"');
}
var结果=[];
对于(变量i=0;i
它生成字符串,如
1选项是“a”
,依此类推。 但我似乎无法处理这些后缀('-st','-nd','-rd','-th')。你们能帮我解决这个问题吗?谢谢

试试这个:

常数arr=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”];
常量后缀(n)=>([“st”,“nd”,“rd”][((n+90)%100-10)%10-1]| |“th”)
const result=arr.map((res,i)=>`${i+1}-${(i+1)}选项的序数_后缀_为${res}`);

控制台日志(结果)您可以将必要的后缀放入数组中,然后选择与索引对应的后缀:

const arr=[…'abcdefghijklmnopqrstuvxyz'];
常量后缀=['th','st','nd','rd'];
const result=arr.map((项目,i)=>
(idx=~(i%10)+1>3 | | ~~(i/10)==1?0:~(i%10)+1,
`${i+1}-${后缀[idx]}选项为${item}`);
控制台日志(结果)

.as控制台包装{min width:100%}
试试这个代码,它可以工作:

-st与以1结尾的数字一起使用(例如,1st,发音为first)

-nd与以2结尾的数字一起使用(例如92nd,发音为九十二)

-rd与以3结尾的数字一起使用(例如33,发音为三十三)

作为上述规则的例外,所有以11、12或13结尾的“青少年”数字都使用-th(例如,第11、第11、第112、第100[和]第12)

-th用于所有其他数字(例如,第9个,发音为第9个)

var arr=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”、“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”];
函数addSuffix(i){
var j=i%10,
k=i%100;
如果(j==1&&k!=11){
返回i+“-st”;
}
如果(j==2&&k!=12){
返回i+“-nd”;
}
如果(j==3&&k!=13){
返回i+“-rd”;
}
返回i+“-th”;
}
var结果=[];
对于(变量i=0;i控制台日志(结果)
您可以创建一个模为
%
的函数来为您处理该问题,例如:

function calc_suffix(number) {
    let rest = number % 10;

    if(rest === 1 && number != 11) { return 'st'; }
    else if(rest === 2 && number != 12) { return 'nd'; }
    else if(rest === 3 && number != 13) { return 'rd'; }
    else { return 'th'; }
}
最终结果如下所示:

var result = [];
for(var i = 0; i < arr.length; i++){
    result.push((i+1) + "-" + calc_suffix(i+1) + " option is "'+arr[i]+'"');
}
var结果=[];
对于(变量i=0;i
你所有的结果都是
-st
这并不能回答问题。阅读,OP在问什么for@GhoulAhmed当前位置:我喜欢你文章的当前编辑,因此我对它投了赞成票,尽管它看起来仍然比我的有点高;)请描述,这段代码将如何回答这个问题,以帮助其他人理解这个答案在100多个站点中测试了这个问题long女士。回答得好。我接受你的回答,因为这是第一个提供所需输出的答案。既然@Ghoul Ahmed已经编辑了他的帖子,它看起来也很紧凑和高效,我本可以对此进行投票,但我的声誉记录不足以满足这一特权:(@U25lYWt5IEJhc3RhcmQg,你的解决方案最快,所以我投票:)