1) border-left-width를 borderLeftWidth로 변경하기
function camelize(str) {
return str
.split("-")
.map((s) => (
s[0].toUpperCase()+s.slice(1)
))
.join('');
}
2) 특정 범위에 속하는 요소 찾기
function filterRange(arr, a, b) {
let result = [];
arr.map((num) => (
(num >= a && num <=b) ? result.push(num) : null
));
return result;
}
3) 특정 범위에 속하는 요소 찾기 (배열 변경하기)
function filterRangeInPlace(arr, a, b) {
for (let i=0; i<arr.length; i++) {
if (arr[i] >= a && arr[i] <= b) continue;
else {
arr.splice(i, 1);
i--;
}
}
return arr;
}
4) 내림차순으로 정렬하기
arr.sort((a,b) => b-a);
5) 배열 복사본을 정렬하기
function copySorted(arr) {
return arr.slice().sort();
}
6) 확장 가능한 계산기
function Calculator() {
this.method = {
"-": (a, b) => a-b,
"+": (a, b) => a+b,
};
this.calculate = function(str) {
let split = str.split(' ');
a = +split[0];
op = split[1];
b = +split[2];
if (isNaN(a) || isNaN(b) || !this.method[op]) return NaN;
return this.method[op](a, b);
};
this.addMethod = function(name, func) {
this.method[name] = func;
};
}
7) 이름 매핑하기
let names = users.map(item => item.name);
8) 객체 매핑하기
let usersMapped = users.map(item => ({
fullName: `${item.name} ${item.surname}`,
id: item.id
}))
9) 나이를 기준으로 객체 정렬하기
function sortByAge(users) {
return users.sort((a, b) => a.age - b.age);
}
10) 배열 요소 무작위로 섞기
function shuffle(array) {
return array.sort(() => Math.random() - 0.5);
}
11) 평균 나이 구하기
// reduce 사용
function getAverageAge(users) {
return users.reduce((prev, user) => prev+user.age, 0) / users.length;
}
// for문 사용
function getAverageAge(users) {
let avg = 0;
for (let i=0; i<users.length; i++) {
avg += users[i].age;
}
avg = Math.floor(avg / users.length);
return avg;
}
12) 중복 없는 요소 찾아내기
// set 사용
function unique(arr) {
return new Set(arr);
}
// includes 사용
function unique(arr) {
let result = [];
for (let str of arr) {
if (!result.includes(str)) result.push(str);
}
return result;
}
13) Create keyed object from array
function groupById(users) {
return users.reduce((obj, value) => {
obj[value.id] = value;
return obj;
}, {});
}
'Web > Javascript' 카테고리의 다른 글
[Javascript] 모던 JS 5.8 (위크맵과 위크셋) 과제 (0) | 2022.06.26 |
---|---|
[Javascript] 모던 JS 5.7 (맵과 셋) 과제 (0) | 2022.06.26 |
[Javascript] 모던 JS 5.4 (배열) 과제 (0) | 2022.05.25 |
[Javascript] 모던 JS 5.3 (문자형) 과제 (0) | 2022.05.23 |
[Javascript] 모던 JS 5.2 (숫자형) 과제 (0) | 2022.05.23 |