如何移除数组空元素并提取数组字符串前3个字符
解决方案(JavaScript)
处理包含空字符串的数组
直接对原数组执行过滤空元素+截取前3字符+拼接成字符串的操作:
const originalArray = ['', 'Monday', '', '', 'Thursday', '', 'Saturday']; // 过滤空元素并截取每个元素前3位 const processedArray = originalArray.filter(item => item).map(day => day.slice(0, 3)); // 转成逗号分隔的字符串 const result = processedArray.join(','); console.log(result); // 输出:Mon,Thu,Sat
处理逗号分隔的字符串
先把字符串拆分成数组,再重复上述步骤:
const originalString = 'Monday,Thursday,Saturday'; // 拆分字符串为数组,过滤空元素并截取前3位 const processedArray = originalString.split(',').filter(item => item).map(day => day.slice(0, 3)); const result = processedArray.join(','); console.log(result); // 输出:Mon,Thu,Sat
通用兼容函数(适配两种输入)
如果需要同时支持数组和字符串输入,可以写一个通用函数自动判断并处理:
function processDays(input) { let dayArray; // 判断输入类型,统一转成数组 if (typeof input === 'string') { dayArray = input.split(','); } else if (Array.isArray(input)) { dayArray = input; } else { throw new Error('输入必须是数组或逗号分隔的字符串'); } // 过滤空元素(含纯空格的元素)、截取前3位、拼接成结果 return dayArray .filter(item => item.trim()) .map(day => day.slice(0, 3)) .join(','); } // 测试数组输入 console.log(processDays(['', 'Monday', '', '', 'Thursday', '', 'Saturday'])); // Mon,Thu,Sat // 测试字符串输入 console.log(processDays('Monday,Thursday,Saturday')); // Mon,Thu,Sat
说明:
filter(item => item.trim()):比单纯filter(item => item)更严谨,能同时过滤空字符串和仅包含空格的无效元素slice(0,3):安全截取前3个字符,若原字符串长度不足3位会返回全部内容(比如输入"Sun"会返回"Sun")
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

