javascript - 字符串到变量的错误转换
问题描述
请帮助我了解为什么当我调用函数并使用“原始形式”的字符串传递参数时,我得到了正确的输出,但是当我首先将它分配给变量时,我得到了不同的输出。
我想将 CSV 字符串转换为 JavaScript 数组数组。当我以原始形式在控制台中传递参数时,即console.log(relay('a;b\nc;d', ';'))
我得到了正确的结果,它是一个数组,但是当我将字符串转换为一个名为 dat 的变量时,我得到了错误的数组 [";"] 这基本上是我的第二部分细绳。
relay = (dat, delimiter = ',', tested = false) =>
dat
.split('\n')
.slice(tested ? dat.indexOf('\n') + 1 : 0);
let dat = ('a;b\nc;d', ';');
console.log(relay(dat)); // [";"]
console.log(relay('a;b\nc;d', ';'));
当我使用变量调用函数时,dat
我得到的输出为[";"]
当我console.log(relay('a;b\nc;d', ';'))
得到正确的输出 时调用该函数["a;b", "c;d"]
</p>
我期望的结果是一个数组数组[["a;b"], ["c;d"]]
解决方案
这条线
let dat = ('a;b\nc;d', ';');
不按你的想法做。它使用逗号操作符,它只返回它的右操作数,所以它相当于
let data = ';';
您可以为变量分配一个数组,然后在调用中传播它。
relay = (dat, delimiter = ',', tested = false) =>
dat
.split('\n')
.slice(tested ? dat.indexOf('\n') + 1 : 0);
let dat = ['a;b\nc;d', ';'];
console.log(relay(...dat));
console.log(relay('a;b\nc;d', ';'));
推荐阅读
- laravel - 如何使用工匠服务显示存储路径中的图像
- laravel - 如何在 Laravel 项目中处理不同的兄弟对象(不是模型)
- r - 如何对向量中的数字进行舍入以仅在 R 中显示必要的小数?
- c# - 无法将连接字符串 C# 中用户名中的反斜杠限制为单斜杠
- r - 使用填充美学时,在 ggplot2 中的条上添加文本
- python - 如何在不使用 time.sleep() 的情况下每秒将值附加到列表中?
- reactjs - 如何向剑道反应组件添加样式或 className 属性,例如
ETC。? - angular - Angular 9. 行扩展时的 ngx-datatable 延迟
- mysql - Mysql避免插入选择中的重复输入错误
- python - Numpy:索引 i < j 的一维数组的总和