[英]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.