javascript 의 input 과 output 사용
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
str = input[0];
});
string 의 기능 "repeat"
const str = "apple"
console.log(str.repeat(4))
[결과]
appleappleappleapple
Array 의 기능 "from"
console.log(Array.from("Hello"));
[결과]
["H","e","l","l","o"]
Array 의 기능 "join"
arr = ["abc", "def", "ghi"]
const str1 = arr.join();
const str2 = arr.join('/');
const str3 = arr.join('');
console.log(str1);
console.log(str2);
console.log(str3);
[결과]
abc,def,ghi
abc/def/ghi
abcdefghi
디스트럭쳐링
arr = "school"
console.log([...arr]);
[결과]
["s","c","h","o","o","l"]
string 의 기능 "split"
str = "s c h o o l"
console.log(str.split(" "));
[결과]
["s","c","h","o","o","l"]
Array 의 기능 "slice"
const myArray = [1 , 2 , 3 , 4 , 5];
console.log(myArray.slice(0, 3));
console.log(myArray.slice(3));
[결과]
[1 , 2 , 3]
[4, 5]
parseInt 정수로
parseInt(3.5)
[결과]
3
✔️ Array 의 기능 "reduce"
배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환
callback
accumulator
currentValue
array.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((acc, cur) => acc + cur, 0);
console.log(sum); // 15
const numbers = [1, 2, 3, 4, 5];
const average = numbers.reduce((acc, cur, idx, arr) => {
acc += cur;
return idx === arr.length - 1 ? acc/arr.length : acc;
}, 0);
console.log(average); // 3
const products = [
{ name: 'A', price: 20 },
{ name: 'B', price: 40 },
{ name: 'C', price: 60 }
];
const totalPrice = products.reduce((acc, cur) => acc + cur.price, 0);
console.log(totalPrice); // 120
const numbers = [10, 5, 8, 1, 7];
const maxNumber = numbers.reduce((acc, cur) => (acc > cur ? acc : cur), numbers[0]);
console.log(maxNumber); // 10
// 배열로 디스트럭칭 응용
const numbers = [10, 5, 8, 1, 7];
answer = numbers.reduce((a, b) => [...a, b * 2], []);
📢 주의 사항
▶ 초기 값을 제공하지 않으면 reduce 는 배열의 첫 번째 요소를
accumulator 로 사용하고, 두 번째 요소부터 콜백 함수를 실행
▶ 배열을 순회하며 여러 작업(합계, 평균, 최대/최소값 등)을 수행할 때 유용
🖋️ 최대공약수 구하는 공식
const getGCD1 = (num1, num2) => {
return (num1 % num2)? getGCD(num2, num1 % num2) : num2;
}
const getGCD2 = (num1, num2) => {
while(num2 > 0){
let r = num1 % num2;
num1 = num2;
num2 = r;
}
return num1;
}