![](/img/trans.png)
[英]JavaScript Array filter function removes only one element with splice
[英]Javascript array filter function removes key values
我有一個由下面列出的鍵值索引的 Javascript 對象數組,每個鍵代表一個 Javascript 對象(這只是數組中鍵值的 console.log() ):
[ '532',
'789',
'1232',
'2346',
'3404',
'4991',
'5323',
'5378',
'8923',
'9876',
'23434',
'23549',
'24454',
'34234',
'45667',
'48983',
'67834',
'72342',
'82434',
'89829',
'98732',
'123404',
'143454',
'234345',
'345294',
'532234',
'532342',
'532345',
'532349',
'989898' ]
當我 console.log() 輸出這個 Javascript 數組時,它用“NULL”值“填充”。 例如,第一個鍵是 532,所以當首先打印這個數組時,會打印 531 個“NULL”值,然后是帶有鍵 532 的 Javascript 對象,每個鍵依此類推。
所以我的解決方案是通過在數組上運行下面的這個函數來刪除空值:
teamData = teamData.filter(function (el) {
return el != null && el != "";
});
我的問題: 。 運行該過濾器函數后,數組鍵值將重置為:
[ '0',
'1',
'2',
'3',
'4',
'5',
'6',
'7',
'8',
'9',
'10',
'11',
'12',
'13',
'14',
'15',
'16',
'17',
'18',
'19',
'20',
'21',
'22',
'23',
'24',
'25',
'26',
'27',
'28',
'29' ]
問題:有沒有辦法過濾掉數組鍵之間的空值,同時仍然保留第一個數組中的鍵值? 有沒有另一種方法來構造這個數據,所以不會有空值?
問題是您試圖使用數組索引位置作為鍵。 這是行不通的,因為數組總是有從 0 開始的連續索引。所以如果你要在索引 532 處有一個元素,那么它之前一定會有 532 個元素(0 到 531)。 如果您使用filter
刪除這些元素,則索引將移動到正確的位置,在您的情況下是從 0 到 29。在 Javascript 中,您的用例有一個本機對象,它稱為 Map, 在這里您可以閱讀有關它的所有內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.