我一直试图解决这个问题太久了。有人可以解释为什么我下面的尝试都不会产生我期望的价值吗?
目标是:transResult = [[xy,zy],[xz,zz]]
let allData='xy|zy\r\nxz|zz'
console.log('first split: '+allData.split(/\r?\n/)[0])
//first split: xy|zy
let transResult=allData.split(/\r?\n/).map(x=>x.split(/|/))
console.log(transResult)
//[ [ 'x', 'y', '|', 'z', 'y' ], [ 'x', 'z', '|', 'z', 'z' ] ]
[如果我分割了一个元素,例如
console.log('xy|zy'.split('|'))
我得到了[ 'xy', 'zy' ]
的期望值,第一个map()将代码第一部分中的结果搞乱了?
|
是一个特殊字符,因此您必须使用\
对其进行转义:
const allData='xy|zy\r\nxz|zz';
const transResult=allData.split(/\r?\n/).map(x=>x.split(/\|/));
console.log(transResult);