繁体   English   中英

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

[英]Insert into array at non-existent index

我正在尝试使用从数据库中提取的数据在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 中的标准数组根本不是数组 ,它们只是具有某些特殊行为的对象。 数组“条目”只是对象属性。 在JavaScript中,如果您分配给尚不存在的对象属性,则会创建它。

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

不要使用数组这种方式-如果你有索引一个元素的9然后indicies然后0-8 有价值的 当你遍历它时undefined ,这可能会非常混乱,特别是如果你试图确定数组的长度。

您想要使用的是具有数字键的对象。

var x = {};
x.[id] = data;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM