제곱과 관련된 Math.sqrt & Math.pow 문법
<script>
const n = 121;
let num = Math.sqrt(n); // n의 루트 값을 반환
console.log(n, num); // 121 11
</script>
<script>
const num = 11;
let n = Math.pow(num, 3); // num의 3제곱
console.log(n, num); // 121 1331
</script>
숫자의 자리수들로 배열을 만드는 방법
<script>
const n = 714; // 예시, n이라는 숫자가 주어진 상황
const arr = [...String(n)];
// [...문자열] : 스프레드 연산자. 문자열의 글자들을 배열로 만들어주는 간단한 방법.
// String(숫자) : 숫자를 문자열로 반환
// 백틱 안에 넣는 방법도 있다. 이게 간단해서 자주 사용할 수도 있겠다.
const arr2= [...`${n}`];
</script>
응용해서 코테 문제풀이
- 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.
<script>
function solution(n) {
let answer = "";
const arr = [...`${n}`]; // 숫자 자리수들을 배열로 변환
arr.sort((a, b) => b - a); // sort 메서드를 사용해서 내림차순 정렬.
// a와 b를 비교하면서 배열을 돈다.
// a - b : a가 b보다 크면 a를 b 뒤에 보냄. 오름차순 정렬.
// b - a : a가 b보다 크면 a를 b 뒤에 보냄. 내림차순 정렬.
answer = parseInt(arr.join(""));
return answer;
}
</script>
불변성 법칙
<script>
const user = {
name: "김이름";
age: 25;
isAdmin: true;
};
user.email = "kimir000@gmail.com"; // 추가
user.age = 26; // 수정
delete user.isAdmin; // 삭제
</script>
객체 요소 접근 방법: Object.
1) Object.keys / Object.values
2) Object.entries
3) Object.assign
<script>
const user = {
name: "김이름";
age: 25;
isAdmin: true;
};
// (1-1)
const keys = Object.keys(user);
console.log(keys); // ["name", "age", "isAdmin"]
// (1-2)
const values = Object.values(user);
console.log(values); // ["김이름", 25, true]
// (2)
const entries = Object.entries(user);
console.log(entries); // [["name", "김이름"], ["age", 25], ["isAdmin", true]]
// 큰 배열 안에 [key, value]로 구성된 작은 배열들을 찢어 넣어준다.
// (3)
const userDetails = {
occupation: "개발자",
};
Object.assign(user, userDetails); // 원본 객체에다가 새로운 객체의 속성을 복사
// 원본 객체를 대상 객체, 추가하는 객체를 출처 객체라고 부른다.
console.log(user); // {name: "김이름", age: 25, isAdmin: true, occupation: "개발자"}
</script>
배열: push & pop
<script>
const fruits = ["apple", "banana"];
// push 밀어넣기
fruits.push("orange");
console.log fruits // ["apple", "banana", "orange"]
// pop 마지막 요소 떼어오기
const lastFruit = fruits.pop();
console.log(lastFruit); // orange
console.log(fruits); // ["apple", "banana"];
</script>
배열: map
<script>
// map: 원본 배열에서 각 요소를 가공한 새로운 배열을 리턴하는 함수
// 1) 배열 내의 모든 요소 각각에 대해
// 2) 주어진 함수를 호출한 결과를 모아
// 3) 새로운 배열을 반환
// 형태
const numbers = [1, 2, 3, 4, 5];
const squared = numbers.map(주어진함수(인자));
</script>
<script>
// 즉
const numbers = [1, 2, 3, 4, 5];
const squared = numbers.map(function(num) { // 주어진 함수
return num * num;
});
</script>
배열: filters
<script>
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(주어진함수(인자));
</script>
<script>
// 즉
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(function(num) {
return num % 2 === 0;
});
</script>
배열: reduce
배열의 각 요소에 대해서 주어진 함수를 실행하고, 결과물을 누적해 반환한다. reduce를 누적기라고 많이 부른다.
<script>
const numbers = [1, 2, 3, 4, 5];
numbers.reduce(주어진함수(인자1, 인자2)); // reduce는 인자가 두 개 들어간다.
</script>

배열: sort (기본적으로 유니코드 기반으로 정렬)
<script>
const fruits = ["banana", "orange", "apple"];
fruits.sort();
console.log(fruits); // ["apple", "banana", "orange"]
</script>
<script>
const fruits = ["banana", "orange", "apple"];
const sortedFruits = fruits.sort();
console.log(sortedFruits); // ["apple", "banana", "orange"]
console.log(fruits); // ["apple", "banana", "orange"]
</script>
sort 응용
<script>
const numbers = [40, 1, 100, 5, 25];
numbers.sort();
console.log(numbers); // [1, 100, 25, 40, 5]
// 기본적으로 유니코드 상으로 정렬하기 때문에, 숫자순으로 정렬하려면 로직을 추가해줘야 한다.
numbers.sort(function(a, b) {
return a - b; // 오름차 순으로 정렬해주는 비교함수!
});
console.log(numbers); // [1, 5, 25, 40, 100]
</script>