![](/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.