javascript 拆分空字符串应返回空数组

bjg7j2ky  于 2023-04-28  发布在  Java
关注(0)|答案(6)|浏览(184)

如果我用

''.split(',')

我得到了['']而不是一个空数组[]
我如何确保一个空字符串总是返回一个空数组?

ryhaxcpt

ryhaxcpt1#

在调用split之前,只需简单检查字符串是否为false:

function returnArr(str){
  return !str ? [] : str.split(',')
}

returnArr('1,2,3')
// ['1','2','3']
returnArr('')
//[]
ruoxqz4g

ruoxqz4g2#

试试这个

r=s?s.split(','):[];
lnlaulya

lnlaulya3#

const arr = ''.split(',').filter(Boolean);
console.log('result:', arr)
2guxujil

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 ,[]));
70gysomp

70gysomp5#

使用条件?exprIfTrue:exprIfFalse
https://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(','));
rqenqsqc

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']

相关问题