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)
