javascript - 从 JavaScript 函数的参数返回一个二维数组,其中分号表示新行

标签 javascript arrays

我有这个简单的 JavaScript 函数,它运行得很好,它返回一个包含参数(参数)的数组,例如该函数的 1,2,3:

function array() {
var a = Array.from(arguments);
return a; 
} 

我现在想将相同的逻辑(将函数参数传递到数组)应用于名为矩阵的 JavaScript 函数。像这样的事情:

matrix(1,2,3;4,5,6) where a semi-colon (;) indicates a new row in the 2D array.

该函数接受参数(或参数)并返回一个 2D JavaScript 数组,如下所示:

[[1,2,3],[4,5,6]]

什么 JavaScript 代码可以以最有效、最简单的方式做到这一点?

我尝试将数组转换为字符串,然后应用拆分并返回数组,但我还没有设法让它工作。

我之所以要这样做,是因为在我的 Microsoft Surface 平板电脑上的屏幕键盘上输入分号比切换键盘并输入 4 个方括号要容易得多且快得多!快速输入 4 个方括号通常也很容易出错。当我快速打字时,我通常会输入 2-3 个括号,然后我总是必须返回并仔细检查所有 4 个括号是否都正确输入并在正确的位置。当我输入大量 JavaScript 数组时,这对我来说是一个很大的时间 killer 。

最佳答案

I have tried to convert the array to a string and then apply split and back to array but I have not managed to get it to work.

如果有一个字符串作为输入适合您,您可以简单地通过 ; 拆分来完成,然后通过 , 再次映射并拆分每个子数组,像这样:

const yourString = "1,2,3;4,5,6"

const your2DArray = yourString.split(";").map(subArr => subArr.split(","))

console.log(your2DArray)

<小时/>

编辑:
正如 sairfan 注意到的,上面的代码片段在 IE 上不起作用,因为它不支持箭头函数。要解决这个问题,您可以简单地使用一个简单的函数:

const yourString = "1,2,3;4,5,6"

const your2DArray = yourString.split(";").map(function (subArr) {
  return subArr.split(",")
})

console.log(your2DArray)

关于javascript - 从 JavaScript 函数的参数返回一个二维数组,其中分号表示新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58208830/

相关文章:

javascript - 为什么这个 JSON 显示为未定义?

javascript - 一个<select>的选定值可以修改另一个<select>吗?

javascript - AJAX 错误状态代码 500 内部服务器错误

javascript - 在Cesium中绘制部分球体

javascript - (7) 无法连接localhost端口3000 : Connection refused

python - 为什么 len(a[0]) 与 a.shape[1] 不同

c - 在 C 中读取字符串时出现访问冲突错误

python - 在 numpy 中创建包含 2 个数组的矩阵

php - 我应该使用数组还是对象

c - 如何高效处理大型数组中未使用的部分: virtual memory or manually?