分割图的结果将返回意外的数组输出

问题描述 投票:0回答:1

我一直试图解决这个问题太久了。有人可以解释为什么我下面的尝试都不会产生我期望的价值吗?

目标是: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()将代码第一部分中的结果搞乱了?

javascript map-function
1个回答
1
投票

|是一个特殊字符,因此您必须使用\对其进行转义:

const allData='xy|zy\r\nxz|zz';  
const transResult=allData.split(/\r?\n/).map(x=>x.split(/\|/));

console.log(transResult);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.