簡體   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