如果我使用
''.split(',')
我得到['']
而不是空数组[]
。
如何确保空字符串总是返回一个空数组?
答案 0 :(得分:5)
您可以使用splice()
''.split(',').splice()
//[]
此示例适用于您的问题:
function returnArr(str){
return !str ? [] : str.split(',')
}
returnArr('1,2,3')
// ['1','2','3']
returnArr('')
//[]
答案 1 :(得分:0)
试试这个
r=s?s.split(','):[];
答案 2 :(得分:0)
split()总是试图分成几部分,所以你可以尝试:
l='';
list=(l=='')?[]:l.split(',');
始终适用于
l='p,q,r';
list=(l=='')?[]:l.split(',');
您还可以编写一个新的拆分方法,如:
String.prototype.split2 = function (ch) {
return (this=='')?[]:this.split(ch)
}
所以tou可以尝试:
''.split2(','); //result: []
'p,q,r'.split2(','); //result: ['p','q','r']
答案 3 :(得分:0)
我想这应该这样做;
console.log(''.split(',').reduce((p,c) => c ? p.concat(c) : p ,[]));
console.log("test1,test2,".split(',').reduce((p,c) => c ? p.concat(c) : p ,[]));