javascript - 在不存在的索引处插入数组

标签 javascript arrays

我正在尝试使用从数据库中提取的数据在 javascript 中格式化数组,以便行的 ID 是数组的索引,因此数据

ID | Data
----------------------------
1  | hi
2  | more data
4  | junk data
8  | hello world
12 | h3ll0

看起来像

array:
    [1] = hi
    [2] = more data
    [4] = junk data
    [9] = hello world
    [12] = h3ll0

我尝试过使用 array.splice(id,1,data) 但是当我 console.log 数组时,索引不匹配,几乎就像因为索引之前不存在一样它只是将值附加到数组的末尾。

所以我想知道如何在任何索引处向数组添加数据,以便我可以创建一个数组,如示例所示

最佳答案

信不信由你,你只是分配给它:

var a = []; // Creates array
a[1] = "hi";
a[2] = "more data";
a[4] = "junk data";
a[9] = "hello world";
a[12] = "h3ll0";

这是因为 JavaScript 中的标准数组 aren't really arrays at all ,它们只是具有某些特殊行为的对象。数组“条目”只是对象属性。在 JavaScript 中,如果您分配给一个尚不存在的对象属性,它就会被创建。

如果您打算使用数组特性,例如 length(在上面的示例中为 13;它总是比最高索引,或者如果你直接分配给 length 就是你给它的值),或者 splice 等。如果你计划要使用这些功能,您可以只使用一个对象(var a = {}; 而不是 var a = [];)。以上没有任何变化。

关于javascript - 在不存在的索引处插入数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22850637/

相关文章:

javascript - 在不可绑定(bind)元素内使用 Angular 数据绑定(bind)和指令

JavaScript - "Querying"一个对象

c - 在 C 中读入结构数组时只打印 txt 文件的最后一行

c++ - 在 C++ 中处理不同数组维度和数据类型的模板函数

javascript - JavaScript 中的惰性事件流

javascript - 可通过 html、javascript 编辑列表

javascript - 在 ReactJS 中,使用 Reactstrap,我希望我的警报停留在它开始的屏幕上的同一个位置

javascript - Rx js过滤器方法不返回过滤器数组

arrays - 为什么合并 M 个排序数组的复杂度是线性时间?

C : Increase Dynamic Array by one in a loop