배열(Array)
1. for문
▶ 가장 기본적으로 배열의 모든 요소를 순회하며 특정 값이 있을 경우 count를 증가시킴
const arr = ['A', 'B', 'B', 'C', 'D' ];
let count = 0;
for(let i = 0; i < arr.length; i++) {
if(arr[i] === 'A') {
count++;
}
}
console.log(`count : ${count}`);
2. map()
▶ 특정 값의 개수를 반환하는 함수를 생성하고 map()을 사용해 특정 값을 체크
var arr = ['A', 'B', 'B', 'C', 'D' ];
function arrCount(arrParam, str) {
var count = 0;
arrParam.map(item => {
if (item === str) count++;
});
return count;
}
console.log(`count : ${arrCount(arr, 'A')}`);
3. filter()
▶ filter()는 배열의 모든 요소를 순회하여 특정 조건에 부합하는 값들을 모아 새로운 배열을 반환
const arr = ['A', 'B', 'B', 'C', 'D' ];
let result = arr.filter(item => item === 'A');
console.log(result);
console.log(`count : ${result.length}`);
4. reduce()
▶ 주어진 배열을 순회하면서 callback 함수를 실행하고, 하나의 리턴값을 반환하는 함수
▶ reduce() 함수의 반환값은 1(배열 arr의 'A'의 개수) + 0(초기값)으로 1이다.
▶ 마지막으로 0을 10으로 변경하면 11이 반환됨
const arr = ['A', 'B', 'B', 'C', 'D' ];
let result = arr.reduce((count, data) => data === 'A' ? count + 1 : count, 0);
console.log(`count : ${result}`);
배열의 객체
1. for문
▶ 객체로 구성된 배열에서 객체의 age 속성이 20인 요소의 개수를 for문을 사용하여 구함
const arr = [
{name : 'A', age: 10},
{name : 'B', age: 20},
{name : 'C', age: 30},
{name : 'D', age: 40},
{name : 'E', age: 20}
];
let count = 0;
for(let i = 0; i < arr.length; i++) {
if(arr[i]['age'] === 20) {
count++;
}
}
console.log(`count : ${count}`);
2. map()
▶ 파라미터 하나를 더 추가하여 특정 속성을 체크할 수 있도록 함.
var arr = [
{name : 'A', age: 10},
{name : 'B', age: 20},
{name : 'C', age: 30},
{name : 'D', age: 40},
{name : 'E', age: 20}
];
function arrCount(arrParam, str, property) {
let count = 0;
arrParam.map(item => {
if (item[property] === str) count++;
});
return count;
}
console.log(`count : ${arrCount(arr, 20, 'age')}`);
3. filter()
const arr = [
{name : 'A', age: 10},
{name : 'B', age: 20},
{name : 'C', age: 30},
{name : 'D', age: 40},
{name : 'E', age: 20}
];
let result = arr.filter(item => item['age'] === 20);
console.log(result);
console.log(`count : ${result.length}`);
});
4. reduce()
const arr = [
{name : 'A', age: 10},
{name : 'B', age: 20},
{name : 'C', age: 30},
{name : 'D', age: 40},
{name : 'E', age: 20}
];
let result = arr.reduce((count, data) => data['age'] === 20 ? count + 1 : count, 0);
console.log(result);
다차원 배열(Multidimensional Array)
1. for문
다중 for문으로 처리
2.map()
const arr = [
['A', 'B', 'C'],
['D', 'E', 'F'],
['A', 'B', 'C']
];
function arrCount(arrParam, str) {
let count = 0;
arrParam.map(item => {
item.map(item2 => {
if (item2 === str) count++;
});
});
return count;
}
console.log(`count : ${arrCount(arr, 'A')}`);
'JS' 카테고리의 다른 글
[JS] == , === 차이점 (0) | 2023.01.18 |
---|---|
[JS] 배열 특정 값 포함 여부(includes, indexOf, some, every) (0) | 2023.01.17 |
[JS] Templete Literal : 백틱(``), 달러(${}) (0) | 2023.01.16 |
[JS] Javascript 이론 (1) (0) | 2023.01.14 |
[JS] join() 메서드 (0) | 2023.01.13 |