let arr1=[[1,2],[2,3]]
let arr2=[[3,4],[5,6]]
let newArr1=[]
let newArr2=[]
//자 2차원 함수를 배우지 않았다고 친 상태에서의 풀이
for(let i=0; i<arr1.length; i++){
let temp1=arr1[i];
let temp2=arr2[i];
for(let j=0; j<temp1.length; j++){
newArr1.push(temp1[j]);
newArr2.push(temp2[j]);
}
}
//덧셈해서 배열 만들기
//temp3 = [4,6,7,9]
let temp3=[]
for(let i=0; i<newArr1.length; i++){
temp3.push(newArr1[i]+newArr2[i])
}
//세로랑 가로가 같은 개수라고 하니까 i*i개로 나눠야지
//2개면 0,1/2,3
//3개면 0,1,2/3,4,5/6,7,8
//4개면
//0,1,2,3 ----> (0번째 * 4개) ~ ((1*i)-1)
//4,5,6,7 ----> (1번째 * 4개) ~ ((2*i)-1)
//8,9,10,11 --> (2번째 * 4개) ~ ((3*i)-1)
//12,13,14,15-> (3번째 * 4개) ~ ((3*i)-1)
//i번째 j개 --> (i번째 * j개) ~ ((i번째*j개)-1)
//2배열을 새로운 배열에 합쳐주는 concat
// let a = [1,2,3]
// let b=['ab','b']
// let c=[]
// c[0]=a.concat(b)
// c[1]=[3,4,5]
// c[2]=c[0].concat(c[1])
// c[1]=c[0].concat(c[2])// 얘도 되는데...?
// c[4]
//큰 박스 몇개
//[4,6,7,9] 예시
let answer=[]
let temp4=[]
let len = arr1.length;
//j개
//arr1=[[1,2],[2,3]] --> 2개
for(let i=0; i<len; i++){ // 0 1
//작은박스 몇개
//j는 temp 끝까지 돌리게 하는 요소
for(let j=(i*len); j<((i+1)*len); j++){
// temp4[i]=temp3[j].concat(temp3[j+1])
//Uncaught TypeError: temp3[j].concat is not a function --> 태그id나 name이 자바스크립트 함수명과 동일하거나 오류가 발생하는 코드가 존대
//뭐왜뭐 temp3[]도 원소 잘 뜨고 concat도 원래 있는 함순데 너는 왜 안되는디
//질문으로 넘기자ㅇ>-<
--> concat은 배열에서만 돌아갑니다. 니가 가진전 number에요. 긴가민가하면 typeof를 돌려볼것
}
}
[220107] 2차배열, push로 풀기
let arr1 = [[1], [2]];
let arr2 = [[3], [4]];
function solution(arr1, arr2){
//
let answer=[];
for(let i=0; i<arr1.length; i++){
//각 요소를 더한 값을 더할 배열 -> push 사용하려면 배열이여야함
let temp=[];
for(let j=0; j<arr1[i].length; j++){
//2차원 배열의 각 요소를 꺼내서 더함
temp.push(arr1[i][j]+arr2[i][j]);
}
//더한 값을 넣을 배열을 넣을 배열
answer.push(temp)
}
return answer;
}
console.log(solution(arr1, arr2))
[220109] for문 만으로 풀기
아니 되네?? answer[i][j]=arr1[i][j]+arr2[i][j] 형태로 왜 안되는지 짜증내다가 갑자기 풀림.
let arr1=[[1,2], [3,4]]
let arr2=[[5,6], [7,8]]
let answer=[]
//이렇게 2차원배열을 만들면 for문 속 단순연산을 넣을 수 있다
for(let i=0; i<arr1.length; i++){
answer.push([])
}
function solution(arr1, arr2){
for(let i=0; i<arr1.length; i++){
for(let j=0; j<arr1[i].length; j++){
//for문 단순연산
answer[i][j]=arr1[i][j]+arr2[i][j]
}
}
return answer;
}
console.log(solution(arr1, arr2))
댓글