1. 화살표 함수로 반복문을 단순하게 만들어라
function applyGreeting(name, callback) {
return callback(name);
}
console.log(applyGreeting('mark', name => `안녕 ${name}`));
2. 배열 치트 시트
map : 형태를 바꿀 수 있지만 길이는 유지된다
sort : 형태나 길이는 변경되지 않고 순서만 변경된다
filter : 길이를 변경하지만 형태는 변경하지 않는다
find : 배열을 반환하지 않는다. 한개의 데이터가 반환되고 형태는 변경되지 않는다
forEach : 형태를 이용하지만 아무것도 반환하지 않는다
reduce : 길이와 형태를 바꾸는 것을 비롯해 무엇이든 처리할 수 있다
const price = [1, 2, '흥정가능', 3, 4,];
const formattedPrices = price.map(v => parseFloat(v)).filter(price => price);
console.log(formattedPrices);
3. map() 메서드로 비슷한 길이의 배열을 생성하라
const data = [{name: 'test1', age: 30}, {name: 'test2', age: 20}];
console.log(data.map(o => o.name));
4. filter()와 find()로 데이터의 부분집합을 생성하라
const filtered = data.filter(o => o.age === 30);
console.log(filtered);
const findItem = data.find(o => o.age === 30);
console.log(findItem);
5. forEach()로 동일한 동작을 적용하라
filtered.forEach(o => {
console.log(o);
});
6. 체이닝으로 메서드를 연결하라
data.filter(o => o.age === 30).forEach(o => {
console.log(o);
});
7. reduce()로 배열 데이터를 변환하라
const data = [{name: 'test1', age: 30}, {name: 'test2', age: 20}, {name: 'test3', age: 40}];
const changedData = data.reduce((result, obj) => {
return result + obj.age;
}, 0);
console.log(changedData);
const changedData2 = data.reduce((result, obj) => {
result.push(Object.assign({
newAge: obj.age + 10
}, obj));
return result;
}, []);
console.log(changedData2);
for...in 문과 for...of 문으로 반복문을 정리하라
const dataMap = new Map()
.set(1, 'test1')
.set(2, 'test2')
.set(3, 'test3');
for (const data of dataMap) {
const [id, name] = data;
console.log(id, name, data);
}
const data2 = {
3: 'test1',
4: 'test2',
5: 'test3'
}
for (const id in data2) {
console.log(id);
}