javascript - 拆分映射结果会返回意外的数组输出

标签 javascript map-function

我已经尝试解决这个问题太久了。有人可以解释为什么我下面的尝试都不会产生我预期的值(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/

相关文章:

javascript - Array(n) 和 [...Array(n)] 之间的区别

python : can reduce be translated into list comprehensions like map, lambda 和过滤器?

javascript - 临时局部变量的 Angular 指令

在表单中调用时的 Javascript 函数 'is not a function'

javascript - 您将如何使用这两种概念上不同的方法来编写 javaScript 对象

haskell - 部分应用函数和柯里化(Currying),如何制作更好的代码而不是大量的 map ?

javascript - 如何停止其他代码运行直到 setTimeout() 完成运行?

Javascript 到 JQuery - 在文本字段中呈现用户输入

python - python中列表之间映射的最快方法是什么