배열의 곱셈을 하는 문제였는데 map 함수를 모르고 for문을 이용해 하나하나 곱해주려고 했지만 생각만큼 잘 되지않아 배열의 곱셈에 대해 검색해 map 함수를 이용하였음. 그리고나서 처음에 하려했던 for문을 이용한 배열의 곱셈도 알아냄
머릿속에서 생각한대로 for문이 만들어지지가 않음.
function solution(numbers) {
let answer = [];
answer = 2 * answer
return answer;
}
- 매개변수인 numbers가 없어서 안됨
function solution(numbers) {
let answer = [];
answer = 2 * numbers
return answer;
}
- numbers로 바꾸고보니 애초에 배열을 가져다가 2를 곱한다고 해서 그게 연산이 되는지 확인부터 해야했음
a = [1,2,3,4,5] b = 2 * a console.log(b) // NaN
안됨. 배열 안에 있는 값을 for문으로 빼낸 후 각각 곱셈해주어야겠다고 생각함
function solution(numbers) {
let answer = [];
for(i=0; i<=4;i++) {
answer = 2 * numbers[i]
}
return answer;
}
console.log(solution([1,2,3,4,5])) // 10
3.for문 안에서 i-1 만큼 돌고 2 * numbers[i] 이 배열인 answer 안에 각각 들어가서 [2,4,6,8,10]이 나올줄알았는데 마지막 10만 나왔음. for문 안에 있는 answer 를 고쳐야할 것같은데 내 머리로는 어떻게 고쳐야할지 도저히 모르겠음. 생각해보니 배열의 길이가 달라지면 for문의 조건식도 변경해줘야하는구나.
다른 사람의 풀이를 참고함
function solution(numbers) {
const answer = [];
for(let i=0; i<numbers.length; i++) {
answer[i] = numbers[i]*2;
} return answer
}
내가 해결하지 못한 두가지 문제점이었던 매개변수의 길이가 5보다 크면 옳은 답을 도출하지 못하는 부분은 for문의 조건식에서 length를 사용함으로 해결하였고 배열의 값들을 각각 2 곱해주어 다시 각 배열로 집어넣는 작업은 answer[i] 로 해결해주었음을 알 수 있었음.
또한 map 함수를 이용해 배열의 곱셈을 할 수 있다는 것도 알게 되었고 map 함수를 이용한 코드도 만들어보았음.function solution(numbers) { const answer = numbers.map(x => x * 2) return answer; }