栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用for循环中的拼接从数组中删除项目

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用for循环中的拼接从数组中删除项目

解决方案1

您可以向后循环,如下所示:

var searchInput, i;searchInput = ["this", "is", "a", "test"];i = searchInput.length;while (i--) {    if (searchInput[i].length < 4) {        searchInput.splice(i, 1);    }}

这是因为在数组上进行增量迭代,当您对其进行拼接时,数组将被修改到位,因此项目被“移位”,最终您将跳过某些迭代。向后循环(使用a

while
或什至
for
循环)可解决此问题,因为您未按拼接的方向循环。


解决方案2

同时,生成新数组而不是就地修改数组通常更快。这是一个例子:

var searchInput, newSearchInput, i, j, cur;searchInput = ["this", "is", "a", "test"];newSearchInput = [];for (i = 0, j = searchInput.length; i < j; i++) {    cur = searchInput[i];    if (cur.length > 3) {        newSearchInput.push(cur);    }}

其中

newSearchInput
将仅包含有效长度的项目,而您仍具有中的原始项目
searchInput


解决方案3

除了上述第二种解决方案,还可以使用类似的更新

Array.prototype
方法更好地处理该问题:
filter
。这是一个例子:

var searchInput, newSearchInput;searchInput = ["this", "is", "a", "test"];newSearchInput = searchInput.filter(function (value, index, array) {    return (value.length > 3);});


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614714.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号