2016-10-02 5 views
0

고차 함수를 사용하여 3x3 2 차원 배열을 채우려고합니다. 구체적으로 말하면,이 작업을 끝내기 위해 array.map 함수를 사용해야합니다. 지금까지 내 코드는 다음과 같습니다.자바에서 고차 함수

function Matrix(m,n){ 
     var mat = Array.apply(null, new Array(m)).map(
     Array.prototype.valueOf, 
     new Array(n) 
    ); 
    return mat; 
    } 
    restaurants = Matrix(3,3); 
    restaurants.map(
     function(row,i){ 
     return row.map(function(cell,j){ 
      return new BorderedCell(ToString(ancestry[i][j])); 
      }); 
     }); 

레스토랑을 표시하려고 할 때 출력이 없습니다.

function(row,i){} 

으로 코드가 중단 된 것으로 보입니다.

어떻게 해결할 수 있습니까? 어떤 도움을 주시면 감사하겠습니다.

편집 : BorderedCell 개체로 2D 배열을 채우려고합니다. 내 문제는 이중 매핑을 사용하여 전체 행렬을 처리하는 방법을 알지 못한다는 것입니다.

+0

이 자리에서 당신이 (행, 난) {}'행에 인'언급 한 기능이 나타납니다 빈 배열 (즉,'[]')이 매핑은 아무 것도하지 않을 것입니다. –

+0

'Matrix (3,3)'의 예상 결과는 무엇입니까? – guest271314

답변

0

restaurants의 예상 결과는 Array.from()를 사용할 수 [[0,1,2],[0,1,2],[0,1,2]] 인 경우, Array.prototype.keys()

function arr(len) { 
 
    return Array.from(Array(len).keys()) 
 
} 
 

 
function Matrix(m, n) { 
 
    return arr(m).map(arr.bind(null, n)); 
 
} 
 

 
var restaurants = Matrix(3, 3); 
 

 
console.log(restaurants);