javascript - 这个字符串处理还有没有更好的方法呢, 我写了2个方法
问题描述
//判断字符串为空的方法const isEmpty = (value) => { if (value === null || value === ’undefined’ || value === undefined || value === ’’) {return true; } if (typeof value === ’string’ && value.trim() === ’’) {return true; } return false;}/////////////////要处理的字符串//每组key-value用,分隔, key-value之间是://想要的结果, 取出所有key, 组成array, 如: [’1’, ’2’]///////////////let depts = '1:a,2:b,';// 方法1:let result1 = [];if (!isEmpty(depts)) { let deptsArray = depts.split(’,’); for (let deptArray of deptsArray) {if (deptArray) { let deptId = deptArray.split(’:’)[0]; result1.push(deptId);} }}console.log(result1);//结果 [’1’,’2’]// 方法2:let result2 = isEmpty(depts) ? [] : depts.split(’,’) .filter(item => !isEmpty(item)) .map(item => item.split(':')[0]);console.log(result2);// 方法3: ?????
有错误的话, 欢迎指正
问题解答
回答1:格式确定的话,可以用正则匹配。
let depts = '1:a,2:b,3:5,';let arr=depts.match(/d+(?=:)/g);console.log(arr)