未分類 26 3 月 2021 请教一个 js 字符串问题。。 请教一个 js 字符串问题。。 資深大佬 : muunala10221 6 一个数组 里面的元素都是字符串,如果某一个元素中全是 n 那么移除掉这个元素,只能想到遍历数组 然后遍历字符串,但性能太低下了 有什么比较好的办法吗 感谢 大佬有話說 (17) 資深大佬 : 66beta 遍历数组没问题,为什么要遍历字符串?‘1n2n3’.replace(/n/g, ”) 主 資深大佬 : muunala10221 @66beta 感谢回复,全是 n 的才处理 像这种’1n2n3’不处理的哦 例如 [‘1n2’, ‘nnn’, ‘n’] 数组 1 和 2 要处理 主 資深大佬 : muunala10221 想到一个思路 也是遍历字符串 如果遍历到的字符 不是 n 就跳过 能节省点性能 不知道还有没有更好的办法 資深大佬 : g1f9 trim 一下判空怎么样。至于性能,是你觉得慢,还是实际业务因为这个问题没达到要求 資深大佬 : tnjin 遍历数组,然后用正则判断当前元素是否全为n,是就移除,不是就不移除。var reg = new RegExp(“^n*$”); 資深大佬 : zictos var str = “nnnnn”; var n = str.search(/^n+$/); 如果 n 等于 0,就说明字符串全是n 資深大佬 : Building 这样循环处理其实没有什么性能问题,毕竟都是在内存上操作,字符串也是有长度限制的,你再匹配或者替换一下字符串反而更复杂。 資深大佬 : 66beta 思想不滑坡,办法总有多 if (str.replace(/n/g, ”) !== ”) 資深大佬 : Vegetable 没什么好办法,循环+及时跳出就到头了,再搞下去在 jit 面前也未必有意义。 資深大佬 : autoxbc 遇到性能问题再谈性能优化 資深大佬 : ljpCN [‘1n2’, ‘nnn’, ‘n’].filter((s) => !/^n*$/.test(s)); 資深大佬 : Reapper 数组肯定要遍历,但是字符串可以用正则啊!if(!’some character’.match(/[^n]/)){ //记录序号,最后再删除 } 主 資深大佬 : muunala10221 @ljpCN @66beta @zictos @Building @Reapper 谢谢 主 資深大佬 : muunala10221 @g1f9 业务是 web 上的 sql 编辑,就是可能会有 N 个库 每个库下有可能 N 个表 N 个视图 N 个 trigger…然后每个表下语句可能很大 算是我个人觉得会导致性能问题 資深大佬 : g1f9 @muunala10221 那还是建议先做,有瓶颈了再优化,从各个端口进行尝试。比如在存数据的时候,无意义的数据就不存之类的 主 資深大佬 : muunala10221 @g1f9 OK 感谢 主 資深大佬 : muunala10221 @zictos 感谢 解决了我的问题