const createNumber = function (n) {
const arr = [];
for (let i = 1; i <= n; i++) {
arr.push(i);
}
return arr;
};
console.log(createNumber(30));
//[1,2,3 ~ 28,29,30]
const getMultipleOf3 = function () {
const calculated = createNumber(30).filter(function (n) {
return n % 3 === 0;
});
return calculated;
};
console.log(getMultipleOf3());
//[3,6,9,12,15,18, ~ 30]
filter()를 이용하여 배열을 순회하면서 3의 배수를 찾고 값이 true이면 값을 뱉어내는 함수이다.
const getMultipleNumber = function () {
const calculated = createNumber(30).filter(function (n) {
return n % 3 === 0 && !(n % 5 === 0);
});
return calculated;
};
console.log(getMultipleNumber());
//[3,6,9,12,18,21,24,27]
<연습2>와 같은 공식이지만 filter()의 조건을 하나 더 추가하여 return하였다. 5의배수가 아닌것을 구할때 괄호를 치지 않아 값이 나오지 않아서 당황했다.
사소한 문법도 신경쓰자!
const getMultipleNumber = function () {
const calculated = createNumber(30).reduce(function (acc, curr) {
if (curr % 3 === 0 && !(curr % 5 === 0)) {
acc.push(curr);
}
return acc;
}, []);
return calculated;
};
console.log(getMultipleNumber());
//[3,6,9,12,18,21,24,27]
initialValue를 []로 주어서 첫 acc는[], curr은1이다. 배열을 순회하면서 curr이 조건에 맞는다면 acc로 push하는 방법이다.
const array = [3, 15, 22, 444, 33, 27, 2321];
array.sort()
console.log(array)
// [15, 22, 2321, 27, 3, 33, 444]
결과를 보면 알다시피 맨 앞자리숫자에 기준을 두고 숫자를 정렬 한것을 볼 수 있다. sort()의 사용법은 array.sort((a,b) => {})이다.
배열을 순회하며 콜백 조건에 맞춰서 정렬하는 매소드이다.
array.sort((a,b) => a-b)
console.log(array)
// [3, 15, 22, 27, 33, 444, 2321]
array.sort((a,b) => b-a)
console.log(array)
// [2321, 444, 33, 27, 22, 15, 3]
b는 배열의 첫번째 숫자이고 a는 두번째이다. 그렇게 배열을 순회할 것이고, a-b했을때 값이 양수,음수,0이냐에 따라서 순서를 정렬한다.
const getMultipleOf3 = array.filter(function (n) {
return n % 3 === 0;
});
multipleOf3.sort((a, b) => a - b);
console.log(getMultipleOf3);
// [3, 15, 27, 33, 444]
const getMultipleOf3 = function (arr) {
const calculated = arr.filter(function (n) {
return n % 3 === 0;
});
calculated.sort((a, b) => a - b);
return calculated;
};
console.log(getMultipleOf3(array));
// [3, 15, 27, 33, 444]