我已经尝试解决这个问题太久了。有人可以解释为什么我下面的尝试都不会产生我预期的值(value)吗?
目标是: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);
关于javascript - 拆分映射结果会返回意外的数组输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59743844/