如何修改数组索引从1开始计数并输出1st、2nd等序数格式
解决方案
问题1:实现数组计数从1开始
JavaScript数组原生为0基索引,无需修改数组本身的底层结构,直接在调用索引时对默认索引值+1即可,既符合开发规范也不会引发额外的兼容问题。
问题2:实现阿拉伯数字转序数格式
可以封装一个通用的序数转换函数,覆盖所有常见的序数规则,包括11/12/13的特殊th后缀场景,逻辑如下:
- 若数字最后两位为11、12、13,统一使用
th后缀 - 否则根据最后一位判断:1对应
st,2对应nd,3对应rd,其余数字对应th
修改后的完整代码
<p id = "array"></p> <script> var car = ["Nissan Skyline R34 GTR", "Toyota Supra A80", "Mazda RX7 FD3S", "Honda NSX Type R", "Nissan 240SX", "Toyoto AE86", "Subaru Impreza WRX Sti", "Honda Civic EG6"]; var text = ""; car.forEach(script) document.getElementById("array").innerHTML = text; // 数字转序数函数 function getOrdinal(num) { const lastTwo = num % 100; if (lastTwo >= 11 && lastTwo <= 13) { return num + 'th'; } const lastOne = num % 10; switch(lastOne) { case 1: return num + 'st'; case 2: return num + 'nd'; case 3: return num + 'rd'; default: return num + 'th'; } } function script (value, index, array) { // 索引+1得到1基计数,再转序数 text += ("My " + getOrdinal(index + 1) + " choice is " + value + ". <br>"); } </script>
运行后会自动输出My 1st choice is Nissan Skyline R34 GTR.这类符合需求的格式。
内容的提问来源于stack exchange,提问作者JanamP
相关产品推荐
相关产品推荐

