저는 그동안 판독값 온라인 및 일부 묘지에는 isn& # 39, t say it, 예를 들어 반박할 말이 그리곤요 줄 수 있고, etc.
2 차원 배열 JavaScript 로 너희가운데 어떻게 합니까? (단, s # 39 it& 가능한)
내가 어떻게 액세스만 멤버를? ('myArray [0] [1]' 또는 'myArray [0.1]'?)
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
var items = [
[1, 2],
[3, 4],
[5, 6]
];
console.log(items[0][0]); // 1
console.log(items[0][1]); // 2
console.log(items[1][0]); // 3
console.log(items[1][1]); // 4
console.log(items);
끝 - < 스니핏 >;!
function createArray(length) {
var arr = new Array(length || 0),
i = length;
if (arguments.length > 1) {
var args = Array.prototype.slice.call(arguments, 1);
while(i--) arr[length-1 - i] = createArray.apply(this, args);
}
return arr;
}
createArray(); // [] or new Array()
createArray(2); // new Array(2)
createArray(3, 2); // [new Array(2),
// new Array(2),
// new Array(2)]
Javascript 로 1 치수 어레이에는 대뿐입니다 수 있지만 다른 기업도 구축하십시오 어레이에는 지적했다.
고정 크기: chunghwa 2d 어레이입니다 다음 기능을 사용할 수 있습니다.
function Create2DArray(rows) {
var arr = [];
for (var i=0;i<rows;i++) {
arr[i] = [];
}
return arr;
}
사실 중요하지 않다, 열 수가 있기 때문에 사용하기 전에 어레이에서는 크기를 지정할 필요가 없습니다.
그럼 그냥 전화할 수 있습니다.
var arr = Create2DArray(100);
arr[50][2] = 5;
arr[70][5] = 7454;
// ...
Array.from(Array(2), () => new Array(4))
2 와 4 각각 1, 2 차 치수에는 있다.
우리는 활용하는 ['아리스프롬'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from), 선택적 매개 변수 및 매핑에서는 같은 어레이입니다 불러키지 수 있는 각 요소의.
>. 아리스프롬 (라일리크 [, 마프너 [, 티사리]])
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
var arr = Array.from(Array(2), () => new Array(4));
arr[0][0] = 'foo';
console.info(arr);
끝 - < 스니핏 >;!
Array(2).fill(null).map(() => Array(4))
이 성능 저하가 에는 첫 번째 치수값 초기화되었습니다 실행할 수 있다는 점도 '' 오마프 있어야 한다. 즉, '어레이입니다 않을 때까지 이를 통해' 또는 '' 할당할지 포지셔닝합니다 주문하십시오 윈필 직접판매용 값을 할당.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
var arr = Array(2).fill(null).map(() => Array(4));
arr[0][0] = 'foo';
console.info(arr);
끝 - < 스니핏 >;!
그러나 이 문제를 , # 39 의 메서드입니다 수정하십시오 here& 나타나는.
Array(2).fill(Array(4)); // BAD! Rows are copied by reference
동시에 반품해야 않니다 필요한 것으로 2 차원 배열 (' [[<, 4 빈 items>. ], [<, 4 빈 items>. ]] '), 그곳에 catch. 첫 번째 치수처리 어레이에는 복제되었습니다 참조별로. 즉, '# 39, & # 39 foo& [0] [0] = 도착, 하나가 아닌 두 개의 행뿐만' 실제로 변경.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
var arr = Array(2).fill(Array(4));
arr[0][0] = 'foo';
console.info(arr);
console.info(arr[0][0], arr[1][0]);
끝 - < 스니핏 >;!
누름식 사용을 볼 수 있는 사람은 별로 없다. 뭔가 새로운 것을 보여줄 수 있는 몇 가지 가치를 어떻게 내아기마저도 초기화하려면 호환표에 (예: 0 또는 빈 문자열을 " ";). 그러나 이 마지막 색인에서 javascript 에 있는 경우 10 요소이면 어레이이며 적립율은 9!
function matrix( rows, cols, defaultValue){
var arr = [];
// Creates all lines:
for(var i=0; i < rows; i++){
// Creates an empty line
arr.push([]);
// Adds cols to the empty line:
arr[i].push( new Array(cols));
for(var j=0; j < cols; j++){
// Initializes:
arr[i][j] = defaultValue;
}
}
return arr;
}
사용 예제:
x = matrix( 2 , 3,''); // 2 lines, 3 cols filled with empty string
y = matrix( 10, 5, 0);// 10 lines, 5 cols filled with 0
사네 답이 있는 것 같습니다.
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
var nrows = ~~(Math.random() * 10);
var ncols = ~~(Math.random() * 10);
console.log(`rows:${nrows}`);
console.log(`cols:${ncols}`);
var matrix = new Array(nrows).fill(0).map(row => new Array(ncols).fill(0));
console.log(matrix);
끝 - < 스니핏 >;!
T , 참고 저희에게는힘과 can& # 39 를 사용하여 직접 칠 것이다 그러므로 모든 행, 행 채우기 때문에 얕은 복제본에 구성자를 same 공유할 수 있는 방법을 통해 각 행의 약간만이라도 공유됨 미모리스에레 uxfs 있다 (다른 커넥터로부터 조롱했기 답변):
// DON'T do this: each row in arr, is shared
var arr = Array(2).fill(Array(4));
arr[0][0] = 'foo'; // also modifies arr[1][0]
console.info(arr);
이것이 내가 달성됩니다:
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
var appVar = [[]];
appVar[0][4] = "bineesh";
appVar[0][5] = "kumar";
console.log(appVar[0][4] + appVar[0][5]);
console.log(appVar);
끝 - < 스니핏 >;!
이 날 비니시쿠머 철자를
우리가 먼저 2D 어레이입니다 만들기 위해 javaScript 로 # 39 의 요소를 추가한 다음 어레이에는 it& 어레이에서는 만들 수 있습니다. 이 방법은 주어진 2 차원 반환되므로 어레이에는 행과 열의 수를.
function Create2DArray(rows,columns) {
var x = new Array(rows);
for (var i = 0; i < rows; i++) {
x[i] = new Array(columns);
}
return x;
}
이 방법을 사용하여 다음과 같이 어레이에서는 만들 수 있습니다.
var array = Create2DArray(10,20);
비사양 스파스 만들려면 " 2d"; 시스템 (x, y) 의 모든 어드레서블 지수 및 값프로필 설정되었습니다 nulll:
let 2Darray = new Array(x).fill(null).map(item =>(new Array(y).fill(null)))
보너스 " 3D"; 시스템 (x, y,z)
let 3Darray = new Array(x).fill(null).map(item=>(new Array(y).fill(null)).map(item=>Array(z).fill(null)))
이에 따라 그동안 정정보도 및 이에 대한 의견 및 다양한 지점에서 언급한 이 질문에 답을 표시됨과 아닌 실제 그래서 저는 여기에 추가.
점에 유의해야 합니다 O ( *) 는 etlat (대부분의 다른 비슷한 대답) 이 아닐 수 있도록 시간 복잡도 적합한 대용량 배열입니다.
var rows = [1, 2, 3];
var cols = ["a", "b", "c", "d"];
var grid = [ for (r of rows) [ for (c of cols) r+c ] ];
/*
grid = [
["1a","1b","1c","1d"],
["2a","2b","2c","2d"],
["3a","3b","3c","3d"]
]
*/
문서를 만들 수 있습니다 'm' n x 를 호출하여 기본값입니다 어레이입니다 운영까지도 그리고 채웁니다
var default = 0; // your 2d array will be filled with this value
var n_dim = 2;
var m_dim = 7;
var arr = [ for (n of Array(n_dim)) [ for (m of Array(m_dim) default ]]
/*
arr = [
[0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0],
]
*/
[Here] [1] 및 문서 더 많은 예를 찾을 수 있습니다.
[1]: # Differences_to_the_older_JS1.7.2FJS1.8_comprehensions https://developer.mozilla.org/en-us/docs/web/javascript/reference/operators/array_comprehensions
내 외곽진입 매우 비슷하지만 좀 더 일반적인 @Bineesh 갖추고 있지만 오토메이티드 외곽진입.
다음과 같이 두 어레이입니다 선언할 수 있습니다.
var myDoubleArray = [[]];
및 콘텐츠 저장 및 액세스하면 다음과 같은 방법으로:
var testArray1 = [9,8]
var testArray2 = [3,5,7,9,10]
var testArray3 = {"test":123}
var index = 0;
myDoubleArray[index++] = testArray1;
myDoubleArray[index++] = testArray2;
myDoubleArray[index++] = testArray3;
console.log(myDoubleArray[0],myDoubleArray[1][3], myDoubleArray[2]['test'],)
이렇게 하면 걱정했던것 출력입니다 인쇄인쇄
[ 9, 8 ] 9 123
우선 라이너 연인 아리스프롬 ()
// creates 8x8 array filed with "0"
const arr2d = Array.from({ length: 8 }, () => Array.from({ length: 8 }, () => "0"));
다른 하나는 () 의 주석문입니다 dmitry_romanov 의해) 를 어레이입니다 윈필 () ()
// creates 8x8 array filed with "0"
const arr2d = Array(8).fill(0).map(() => Array(8).fill("0"));
2 차원 어레이에는 javascript 를 지원하지 않는 대신 다른 것을 우리는 내부 데이터 저장 및 페치할 어레이에서는 어레이입니다 따라 해당 어레이입니다 어레이입니다 포지셔닝하십시오 액세스하려는. ZERO 에서 너희에게베풀어진 어레이입니다 기수법.
/* Two dimensional array that's 5 x 5
C0 C1 C2 C3 C4
R0[1][1][1][1][1]
R1[1][1][1][1][1]
R2[1][1][1][1][1]
R3[1][1][1][1][1]
R4[1][1][1][1][1]
*/
var row0 = [1,1,1,1,1],
row1 = [1,1,1,1,1],
row2 = [1,1,1,1,1],
row3 = [1,1,1,1,1],
row4 = [1,1,1,1,1];
var table = [row0,row1,row2,row3,row4];
console.log(table[0][0]); // Get the first item in the array