如何在JavaScript数组中查找指定长度元素且无匹配时仅输出一次提示
JavaScript 数组筛选指定长度元素的实现方案
方案1:基于现有for循环改造(新增标记变量)
核心逻辑是在循环外声明一个是否找到匹配项的标记,避免循环内重复触发无匹配的提示,只有循环全部执行完还没找到匹配时才输出提示:
let txt = `abc klj 1123 MPM SN67990 MKP LJJ` let arr = txt.split(' ') console.log(arr) // 新增匹配标记,初始为未找到 let hasMatch = false const targetLength = 7 for (let i = 0; i < arr.length; i++) { if (arr[i].length === targetLength) { console.log(arr[i]) // 匹配到后修改标记 hasMatch = true } } // 循环结束后统一判断是否无匹配 if (!hasMatch) { console.log('数组中不存在长度为7的元素') }
方案2:更简洁的现代JS写法(用Array.filter)
直接用数组过滤方法拿到所有符合条件的元素,再根据过滤结果的长度判断是否输出提示:
let txt = `abc klj 1123 MPM SN67990 MKP LJJ` let arr = txt.split(' ') const targetLength = 7 // 筛选所有长度符合要求的元素 const matchedList = arr.filter(item => item.length === targetLength) if (matchedList.length > 0) { // 打印所有匹配项 matchedList.forEach(item => console.log(item)) } else { console.log('数组中不存在长度为7的元素') }
内容的提问来源于stack exchange,提问作者Athirah
相关产品推荐
相关产品推荐

