oris9
[Javascript] 유용한 배열 메서드 정리하기 본문
유용하지만 맨날 헷갈리는 .. 메서드들 🥹🥹🥹🥹🥹
자주 쓰는 단순한 메서드들만 사용하게 되서 적어놓는다.
계속 추가 예정
reduce()
일반적으로 reduce() 는 배열에서 누적값을 다룰 때 사용한다.
arr.reduce(콜백함수, 초기값설정)
arr.reduce((acc, cur, idx, src)=>{},초기값설정)
// 누산기 (acc)
// 현재 값 (cur)
// 현재 인덱스 (idx)
// 원본 배열 (src)
// 리듀서 함수의 반환 값은 누산기에 할당되고,
// 누산기는 순회 중 유지되므로 결국 최종 결과는 하나의 값이 됩니다.
주의! 초기값을 넣어주지 않으면 배열의 첫번째 요소를 사용한다.
객체 내의 값 인스턴스 개수 세기
var names = ["Alice", "Bob", "Tiff", "Bruce", "Alice"];
var countedNames = names.reduce(function (allNames, name) {
if (name in allNames) {
allNames[name]++;
} else {
allNames[name] = 1;
}
return allNames;
}, {});
// countedNames is:
// { 'Alice': 2, 'Bob': 1, 'Tiff': 1, 'Bruce': 1 }
속성으로 객체 분류하기
var people = [
{ name: "Alice", age: 21 },
{ name: "Max", age: 20 },
{ name: "Jane", age: 20 },
];
function groupBy(objectArray, property) {
return objectArray.reduce(function (acc, obj) {
var key = obj[property];
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(obj);
return acc;
}, {});
}
var groupedPeople = groupBy(people, "age");
// groupedPeople is:
// {
// 20: [
// { name: 'Max', age: 20 },
// { name: 'Jane', age: 20 }
// ],
// 21: [{ name: 'Alice', age: 21 }]
// }
Array.from()
!! 새로운 Array를 반환한다
Array.from(arrayLike)
Array.from(arrayLike, mapFn)
Array.from(arrayLike, mapFn, thisArg)
// arrayLike : 배열로 변환할 순회 가능 또는 유사 배열 객체입니다.
// mapFn(ele, index) : 모든 요소를 돌면서 호출하게 되는 함수로, 원래 요소자리에 이 함수에서 나온 반환값이 들어가게 된다.
// thisArg : mapFn 실행 시에 this로 사용할 값
순회 가능이 아니거나 유사 배열이 아닌 일반 객체를 배열로 변환하려면(속성 키, 값 또는 둘을 모두 열거하여)
Object.keys(), Object.values(), 또는 Object.entries()를 사용해야 합니다. 비동기 순회 가능을 배열로 변환하려면 Array.fromAsync()를 사용합니다.
'JavaScript' 카테고리의 다른 글
[Javascript] 제너레이터 함수에 대해 알아보자 (0) | 2024.03.13 |
---|---|
[Javascript] 정규표현식(RegExp, regular expression) 정리하기 (0) | 2024.03.11 |
[Javascript] 파라미터? 인자? 헷갈리는 용어 정리와 argument 객체, 나머지 매개변수에 대해 알아보기 (0) | 2024.03.09 |
웹브라우저에서의 저장소에 대해 알아보기 (로컬스토리지, 세션 저장소, IndexedDB) (0) | 2024.03.08 |
[javascript] 리터럴과 타입에 대해 정리하기 (0) | 2024.03.07 |