繁体   English   中英

如何在 javascript 中将二维数组作为参数传递?

[英]How do you pass a 2d array as a param in javascript?

我正在尝试访问数组中的特定元素,但我只得到第一个。 感谢您指出我的错误的任何帮助。

let testArr = [[1, 2, 3],[4, 5, 6]];
const printArr = (someArr, i) => alert(someArr[i]);
printArr(testArr, [0][0]);

预计 Output

1

实际 Output

1, 2, 3

[0][0]实际上是0 这与

a = [0];
a[0] === [0][0]; // 0

您实际上想要做什么还不清楚。 如果您只想传递一个值,只需传递该值,而不是分别传递数组和索引。

printArr(testArr[0][0]);

如果出于某种原因,您需要分别传递索引和数组,那么您可以将 indies 作为数组传递:

 let testArr = [ [1, 2, 3], [4, 5, 6], [7, [8, 9], 10] ]; const printArr = (arr, indices) => console.log(indices.reduce((a, i) => a[i], arr)); printArr(testArr, [2, 1, 0]); // 8

 printArr(testArr, [0][0]);

近似于:

const some_array = [0];
const second_arg = some_array[0]
printArr(testArr, second_arg);

您将0作为第二个参数传递。

你不能传递任意位的 JS 语法。

请改用两个 arguments。

 let testArr = [[1, 2, 3],[4, 5, 6]]; const printArr = (someArr, i, j) => alert(someArr[i][j]); printArr(testArr, 0, 0);


您可以使用 function 来获得特殊价值。

 let testArr = [[1, 2, 3],[4, 5, 6]]; const printArr = (someArr, fn) => console.log(fn(someArr)); printArr(testArr, array => array[0][0]);

或者,您可以在不转换数字或类似数组的情况下执行此操作。

let testArr = [
    [1, 2, 3],
    [4, 5, 6],
];
const printArr = (someArr, arrNum, indNum) => someArr[arrNum][indNum];

printArr(testArr, 1, 0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM