プログラマ|(Lv.1)行列の加算JavaScript


プログラマコードテスト
解行列の加算(Lv.1)
JavaScriptで問題を解く.
直接解読の方法
function solution(arr1, arr2) {
	var answer = [[]];

	for (let i = 0; i < arr1.length; i++) {
		answer[i] = [];
		for (let j = 0; j < arr1[i].length; j++) {
			answer[i].push(arr1[i][j] + arr2[i][j]);
		}
	}
	return answer;
}
・𐥍𐥍・묮他方式求解法・𐥎
function sumMatrix(arr1, arr2) {
	return arr1.map((a, i) => a.map((b, j) => b + arr2[i][j]));
} 
🙌 このような形で使用された方も多いArray(배열) 객체의 메서드인 Map<Array.prototype.map()>で回答しています.
・「」詳細説明・「
コードのみを表示するときにどのように返すかよく分からないので、コードを開いて表示します.
💡Array.map()メソッド
Array.map(callback(currentValue, index, source) => {return ...});
주어진 배열을 순회하면서 파라미터로 전달받은 콜백 함수를 반복하여 호출합니다.

// currentValue : 처리할 현재 요소
// index(optional) : 처리할 현재 요소의 인덱스
// source(optional) : 순회하는 대상
// 반환값 : 배열의 각 요소에 대해 실행한 callback의 결과를 모은 새로운 배열

호출된 콜백 함수의 결과로 새로운 배열을 생성하여 반환하며 원본 배열은 변경되지 않습니다.
矢印関数で記述された高次関数コードをes 5関数式に変換すると、コードは次のようになります.
function sumMatrix(arr1, arr2) {
	return arr1.map(function (a, i) {
		return a.map(function (b, j) {
			return b + arr2[i][j];
		});
	});
}
次のTestAr 1とTestAr 2を使用して、中間プロシージャをconsoleに設定します.ロゴで確認して
TestArr1 = [ [1, 2],[2, 3] ];
TestArr2 = [ [3, 4],[5, 6] ];

function sumMatrix(arr1, arr2) {
	return arr1.map(function (a, i) {
		console.log('index i 값 : ' + i);
		console.log('요소 값 : ' + a);

		return a.map(function (b, j) {
			console.log('index j 값 : ' + j);
			console.log('a에서 넘어온 요소 b 값 : ' + b);
			console.log('arr2[i][j] 값 : ' + arr2[i][j]);
			console.log(b + arr2[i][j]);
			
        	return b + arr2[i][j];
		});
	});
}
▶結果の確認
TestArr1 = [ [1, 2],[2, 3] ];
TestArr2 = [ [3, 4],[5, 6] ];

index i : 0
	요소 값 : 1,2

index j : 0
	a에서 넘어온 요소 b 값 : 1
	arr2[i][j]: 3
	배열요소 합 : 4

index j : 1
	a에서 넘어온 요소 b 값 : 2
	arr2[i][j]: 4
	배열요소 합 : 6

----------------------------------
index i : 1
	요소 값 : 2,3

index j : 0
	a에서 넘어온 요소 b 값 : 2
	arr2[i][j]: 5
	배열요소 합 : 7

index j : 1
	a에서 넘어온 요소 b 값 : 3
	arr2[i][j]: 6
	배열요소 합 : 9
▶▼▼▼最終関数の結果は以下の通り.
최종 함수 결과 :
[Array(2), Array(2)]
> 0: [4, 6]
> 1: [7, 9]      
JavaScript配列には複数の高次関数があるので、学習が必要かもしれません.
文章に間違いがあったら教えてください!すぐに修正します!
👍 コメントリンク
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map
https://freestrokes.tistory.com/115
https://7942yongdae.tistory.com/48
ありがとう!
🔗 プログラマ質問リンク
https://programmers.co.kr/learn/courses/30/lessons/12950