我有这个简单的 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/