首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在JavaScript中创建索引从1开始的数组?

如何在JavaScript中创建索引从1开始的数组?
EN

Stack Overflow用户
提问于 2010-05-13 20:24:36
回答 8查看 58.6K关注 0票数 29

默认情况下,每个JavaScript数组的索引从0开始。我想创建一个数组,它的索引从1开始。

我知道,一定很琐碎……谢谢你的帮助。

EN

回答 8

Stack Overflow用户

发布于 2014-03-16 08:33:34

一个简单的解决方案是填充第0项:

代码语言:javascript
运行
复制
var map = [null, 'January', 'February', 'March'];
'First month : ' + map[1];

从语义上讲,最好使用对象:

代码语言:javascript
运行
复制
var map = {1:'January', 2:'February', 3:'March'};
'First month : ' + map[1];

注意这些键实际上不是整型的,对象键总是字符串。

另外,我们不能使用点符号来访问。(MDN - Property Accessors)

我会选择第一种解决方案,我认为它不那么令人困惑。

票数 13
EN

Stack Overflow用户

发布于 2015-09-21 22:45:50

由于谷歌搜索时也会弹出这个问题,比如"javascript start array at 1“,所以我会给出一个不同的答案:

可以对数组进行切片。所以你可以得到一个切片版本的数组,如下所示:

代码语言:javascript
运行
复制
var someArray = [0, 1, 2, 3];

someArray.slice(1);
[1, 2, 3]

someArray.slice(2, 4);
[2, 3]

来源:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

票数 10
EN

Stack Overflow用户

发布于 2019-05-16 15:13:50

您可以使用delete删除第一个元素,如下所示:

代码语言:javascript
运行
复制
let arr = ['a','b','c'];
delete arr[0];

console.log(arr[0]);
console.log(arr[1]);

或者根本不去定义它:

代码语言:javascript
运行
复制
let arr = [,'b','c'];

console.log(arr[0]);
console.log(arr[1]);

如果你想确保你总是得到第一个真实的元素,而不管索引是什么,并且有权访问ES6,你可以使用:

代码语言:javascript
运行
复制
arr.find(Boolean)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2826682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档