반응형
const capitalizeWithoutSpaces = (str) =>
str
.split('')
.filter((char) => char.trim())
.map((char) => char.toUpperCase())
.join('');
1. 배열에서 가장 작은 값 구하기
const getSmallest = (arr) => {
let smallest = Number.POSITIVE_INFINITY;
for (const num of arr) {
if (num < smallest) {
smallest = num;
}
}
return smallest;
};
const getSmallest = (arr) =>
arr.reduce((smallest, num) => Math.min(smallest, num));
2. 배열에서 가장 큰 값 구하기
const getLargest = (arr) => {
let largest = Number.NEGATIVE_INFINITY;
for (const num of arr) {
if (num > largest) {
largest = num;
}
}
return largest;
};
const getLargest = (arr) =>
arr.reduce((largest, num) => Math.max(largest, num));
3. 배열 값 섞기
const shuffleArray = (arr) => {
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
return arr;
};
const shuffleArray = (arr) =>
[...Array(arr.length)]
.map((_, i) => Math.floor(Math.random() * (i + 1)))
.reduce(
(shuffled, r, i) =>
shuffled.map((num, j) =>
j === i ? shuffled[r] : j === r ? shuffled[i] : num
),
arr
);
4. 오브젝트 속성 값으로 그룹 만들기
const groupBy = (arr, groupFn) => {
const grouped = {};
for (const obj of arr) {
const groupName = groupFn(obj);
if (!grouped[groupName]) {
grouped[groupName] = [];
}
grouped[groupName].push(obj);
}
return grouped;
};
const people = [
{ name: 'Matt' },
{ name: 'Sam' },
{ name: 'John' },
{ name: 'Mac' },
];
const groupedByNameLength = groupBy(people, (person) => person.name.length);
/**
{
'3': [ { name: 'Sam' }, { name: 'Mac' } ],
'4': [ { name: 'Matt' }, { name: 'John' } ]
}
*/
console.log(groupedByNameLength);
5. 문자 역순으로
We could reverse a string in JavaScript using a reverse for
loop like this:
const reverseString = (str) => {
let reversed = '';
for (let i = str.length - 1; i >= 0; i--) {
const ch = str[i];
reversed += ch;
}
return reversed;
};
const reverse = reverseString('javascript');
console.log(reverse); // tpircsavaj
const reverse = reverseString('javascript');
console.log(reverse); // tpircsavaj
6. 랜덤 Hex Color 코드
const randomHexColor = () =>
`#${Math.random().toString(16).slice(2, 8).padEnd(6, '0')}`;
7. 배열 안의 값들 평균 구하기
const getAverage = (arr) => {
let sum = 0;
for (const num of arr) {
sum += num;
}
return sum / arr.length;
};
const average = getAverage(arr);
8. 두개의 배열 안의 값이 같은 지 비교
const areEqual = (arr1, arr2) => {
if (arr1.length === arr2.length) {
for (const num of arr1) {
if (!arr2.includes(num)) {
return false;
}
}
return true;
}
return false;
};const arr1 = [1, 2, 3, 4];
const arr2 = [3, 4, 1, 2];
const arr3 = [1, 2, 3];
console.log(areEqual(arr1, arr2)); // true
console.log(areEqual(arr1, arr3)); // false
const areEqual = (arr1, arr2) =>
arr1.sort().join(',') === arr2.sort().join(',');
9. 배열내 중복값 제거
We could remove duplicates from an array like this:
const removeDuplicates = (arr) => {
const result = [];
for (const num of arr) {
if (!result.includes(num)) {
result.push(num);
}
}
return result;
};const distinct = removeDuplicates(arr);console.log(distinct); // [1, 2, 3, 4, 5]
const distinct = removeDuplicates(arr);console.log(distinct); // [1, 2, 3, 4, 5]
10. Map 을 JSON 으로 변경
This short function lets us quickly convert a Map object to a JSON string without losing any information:
const map = new Map([
['user1', 'John'],
['user2', 'Kate'],
['user3', 'Peter'],
]);
const json = JSON.stringify(Object.fromEntries(map));
const map = new Map([
['user1', 'John'],
['user2', 'Kate'],
['user3', 'Peter'],
]);
const obj = Object.fromEntries(map);
11. JSON 을 Map 으로
Another one-liner can reverse the conversion above. The following function will convert a JSON string to a Map object.
const map = new Map([
['user1', 'John'],
['user2', 'Kate'],
['user3', 'Peter'],
]);
const jsonFromMap = JSON.stringify(Object.fromEntries(map));
const obj = JSON.parse(jsonFromMap);
const mapFromObj = new Map(Object.entries(obj));
// Map(3) { 'user1' => 'John', 'user2' => 'Kate', 'user3' => 'Peter' }
console.log(mapFromObj);
12. Snake Case 를 Camel Case 로 변경하기
const snakeToCamelCase = (s) =>
s.toLowerCase().replace(/(_\w)/g, (w) => w.toUpperCase().substr(1));const str1 = 'learn_javascript';
const str2 = 'coding_beauty';console.log(snakeToCamelCase(str1)); // learnJavaScript
console.log(snakeToCamelCase(str2)); // codingBeauty
13. Random UUID 만들기
const generateRandomUUID = (a) =>
a
? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
: ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(
/[018]/g,
generateRandomUUID
);
console.log(generateRandomUUID()); // f138f635-acbd-4f78-9be5-ca3198c4cf34
console.log(generateRandomUUID()); // 8935bb0d-6503-441f-bb25-7bc685b5b5bc
14. Conditional Flow Control
const getNumWord = (num) => {
if (num === 1) {
return 'one';
} else if (num === 2) {
return 'two';
} else if (num === 3) {
return 'three';
} else if (num === 4) {
return 'four';
} else return 'unknown';
};
console.log(getNumWord(1)); // one
console.log(getNumWord(3)); // three
console.log(getNumWord(7)); // unknown
const getNumWord = (num) => {
switch (num) {
case 1:
return 'one';
case 2:
return 'two';
case 3:
return 'three';
case 4:
return 'four';
default:
return 'unknown';
}
};console.log(getNumWord(1)); // one
console.log(getNumWord(3)); // three
console.log(getNumWord(7)); // unknown
const getNumWord = (num) =>
num === 1
? 'one'
: num === 2
? 'two'
: num === 3
? 'three'
: num === 4
? 'four'
: 'unknown';
console.log(getNumWord(1)); // one
console.log(getNumWord(3)); // three
console.log(getNumWord(7)); // unknown
참고사이트
Originally published at codingbeautydev.com
Uploaded by N2T
반응형
'IT > Javascript' 카테고리의 다른 글
JavaScript Key code (0) | 2023.03.17 |
---|---|
Babel+Webpack 설정방법 (0) | 2022.08.30 |
Javascript 객체 복사 (Object, Array) (0) | 2022.08.10 |
두 정수 사이의 합 (0) | 2022.07.14 |
약수의 합 (0) | 2022.07.14 |
행렬의 덧셈 (0) | 2022.07.14 |
수박수박수박수박수박수? (0) | 2022.07.14 |
문자열을 정수로 바꾸기 (0) | 2022.07.14 |