如果我用
''.split(',')
我得到了['']而不是一个空数组[]。我如何确保一个空字符串总是返回一个空数组?
['']
[]
ryhaxcpt1#
在调用split之前,只需简单检查字符串是否为false:
function returnArr(str){ return !str ? [] : str.split(',') } returnArr('1,2,3') // ['1','2','3'] returnArr('') //[]
ruoxqz4g2#
试试这个
r=s?s.split(','):[];
lnlaulya3#
const arr = ''.split(',').filter(Boolean); console.log('result:', arr)
2guxujil4#
我想这个应该可以了
console.log(''.split(',').reduce((p,c) => c ? p.concat(c) : p ,[])); console.log("test1,test2,".split(',').reduce((p,c) => c ? p.concat(c) : p ,[]));
70gysomp5#
使用条件?exprIfTrue:exprIfFalsehttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_operator
let text1 = '' let text2 = '1,2,3,4,5,6,7,8' console.log(text1 == '' ? [] : text1.split(',')); console.log(text2 == '' ? [] : text2.split(','));
rqenqsqc6#
split()总是分割成多个部分(至少一个),所以你可以尝试:
list=(!l)?[]:l.split(',');
你也可以写一个新的split方法,比如:
String.prototype.split2 = function (ch) { return (!this)?[]:this.split(ch) }
你可以试试:
''.split2(','); //result: [] 'p,q,r'.split2(','); //result: ['p','q','r']
6条答案
按热度按时间ryhaxcpt1#
在调用split之前,只需简单检查字符串是否为false:
ruoxqz4g2#
试试这个
lnlaulya3#
2guxujil4#
我想这个应该可以了
70gysomp5#
使用条件?exprIfTrue:exprIfFalse
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_operator
rqenqsqc6#
split()总是分割成多个部分(至少一个),所以你可以尝试:
你也可以写一个新的split方法,比如:
你可以试试: