Web/Javascript
[Javascript] 모던 JS 5.5 (배열과 메서드) 과제
동띵
2022. 5. 25. 15:01
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;
}, {});
}