【发布时间】:2015-12-23 23:52:16
【问题描述】:
首先让我解释一下我想要什么。好吧,我有一个这样的排序数组
var arr = ["ab", "abcd", "abdf", "abcdd", "abcdd", "abcdfd", "abcdsss", "abcdefgh", "abcdsdsdsds"];
现在我需要删除所有字符串长度小于 5 的元素。好的,现在我的意思是,有没有最简单的方法可以找到字符串长度为 4 的元素的索引。喜欢这里的两个元素包含字符串长度4. 但我需要最后一个。如果有可能获得该索引,我可以申请
arr.splice(0, (index+1));
还有一件事,我的原始数组包含 100 万个数据。现在我该如何解决这个问题?
【问题讨论】:
-
你明白了。循环遍历数组并拼接出您不想要的条目。如果您有一个包含 1,000,000 多个对象的 javascript 数组,那么您可能会遇到更深层次的问题。
-
你能做一个新的过滤数组吗?还是必须改变原点?
arr2=arr.filter(/./.test, /[\w\W]{5}/) -
感谢@CollinD。但我真的需要那个。因为接下来他们数组包含 1 个核心数据。所以我需要一种有效的方法来做到这一点。
-
虽然
filter()是最简单的方法,但使用简单的for循环查找长度为4(或其他)的最后一个元素的索引并使用它做一个切片会更有效.特别是如果元素的数量 > 长度 4 很大。 -
@SudarshanBiswas 即使过滤数组也必须遍历整个数组。这是不可避免的。您可以通过构造一个长度超过 4 的新元素数组来节省时间,但这实际上取决于您的数据。
标签: javascript jquery arrays