10문제가량을 풀었지만, 유독 안풀리는 문제가 있어서 계속 붙잡고 있었다. 바로 아래와 같다.
6. 배열을 입력으로 받아, 입력으로 주어진 배열의 요소 중 2의 배수만 ‘배열의 형태로’ 출력하는 함수를 작성하고 호출까지 해주세요.
사실 2의 배수만 출력을 하면 되기 때문에 굉장히 쉬운 문제라고 생각을 했다.
그냥 편하게 아래와 같이 적어봤다.
let array = [ 1,2,3,4,5,6,7,8,9,10 ]
function 배열함수() {
for ( let i = 0; i < array.length; i++ ) {
if(array[i] % 2 == 0){
console.log(result)
}
}
}
하지만 여기에는 몇가지 문제가 있었으니..
바로 배열의 형태로 출력을 해야한다.
그리고 나는 단순히 값을 나열만 한것이지, 배열에 추가하지를 않았다.
따라서 result.push를 사용해서 다시 작성을 해봤다.
function 배열함수() {
let array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let result = [] // 변수 result에 이따가 넣을거기 때문에 빈 값을 잡자.
for (let i = 0; i < array.length; i++) {
if (array[i] % 2 == 0) {
result.push(array[i]) // result에 array[i] 값을 push 해주면 된다.
console.log(result)
}
}
}
console.log(배열함수())
이렇게해주면 끝이다.
하지만 뭔가 어렵게 한 느낌이 들었다. 분명 쉽게 할 수 있는 느낌이 들었다.
그래서 계속 고민을 해보다가 결국 튜터님께 문의를 드려봤더니. filter를 통해서 한방에 정리를 해주셨다.
let array = [1,2,3,4,5,6,7,8,9,10]
console.log(array.filter((value)=> value & 2 === 0))
이렇게 한줄에 끝이나버렸다.