arr.sort()
*정렬할 때 문자열로 취급하기 떄문에, 숫자가 들어가면 이상하게 정렬된다.
숫자를 정렬하기 위해서는 아래와 같이 정렬이 필요함
//arr.sort() 배열 재정렬, 배열 자체가 정렬됨
// 인수로 정렬 로직을 담은 함수를 받음
let arr = [27,8,5,13];
arr.sort((a,b)=>{
console.log(a,b);
return a-b;
});
//원본기준 정렬 로직 이해
//8,27 : 8,27,5,13
//5,8 : 5,8,27,13
//13,5 : 5,8,27,13
//13,8 : 5,8,27,13
//13,27 : 5,8,13,27 정렬완료
console.log(arr);
ㄴ a와 b를 비교해서 양수가 나오는지, 음수가 나오는지 확인하여 정렬 내부 로직이 작동함
_.sortBy(arr);
함수를 만들어 사용하기보다는
Lodash를 만들어서 사용한다.
어떤 로직이 들어있는지 신경 안써도 되고 숫자, 문자, 객체 등 원하는 기준으로 정렬한다.
실무에서 많이 사용한다.
※사용법 참고 (블로그)
Lodash 사용해보기 실습 VSC 환경에서
//Lodash 사용해보기
var _ = require('lodash');
let arr = [
{name : "Mike", age : 30},
{name : "Jane", age : 20},
{name : "Soo", age : 10},
{name : "Soo", age : 15},
];
const result = _.sortBy(arr, 'age');
console.log(result);
이렇게 되면 소팅이 잘 동작한다..
여러 블로그 보다가 해봤는데 var _ = require('lodash') 를 작성하니 동작했다.
Node.js 환경에서 사용할 때 방법이라는데 이게 Node.js 환경인지... 뭔지... 잘 모르겠는 왕초보
너무 어렵다 (?)
arr.reduce() : 배열의 모든 수 합치기
*reduce 없을 때
//arr.reduce() : 배열의 모든수 합치기
let arr = [27,8,5,13];
//for, for of, forEach,
let result = 0;
arr.forEach(num => {
result += num;
});
console.log(result);
//arr.reduce() : 배열의 모든수 합치기
let arr = [1,2,3,4,5];
//for, for of, forEach,
const result = arr.reduce((prev, cur) => {
return prev+cur;
}, 0);
//reduce 는 함수를 인자로 받는데, 이전(현재까지 더해진 값) + 현재값 더해준다.
//초기값은 0으로 준다.<-optional함
console.log(result);
prev는 이전 까지 더해진 값, cur은 현재값
실습1. arr.reduce() 로 성인 이름만 추출하기
//arr.reduce() , 인수를 함수로 받음
//성인만 뽑아서 새로운 배열 만들기
let userList = [
{name : "Mike", age : 30},
{name : "Tom", age : 10},
{name : "Jane", age : 27},
{name : "Harry", age : 26},
{name : "Steve", age : 3},
];
let result = userList.reduce((prev, cur)=>{
if(cur.age > 19){
prev.push(cur.name);
}
return prev;
}, []);
console.log(result);
실습2. arr.reduce() 이용하여 나이 모두 더하기
//arr.reduce() , 인수를 함수로 받음
//나이 모두 더하기
let userList = [
{name : "Mike", age : 30},
{name : "Tom", age : 10},
{name : "Jane", age : 27},
{name : "Harry", age : 26},
{name : "Steve", age : 3},
];
let result = userList.reduce((prev, cur)=>{
prev += cur.age;
return prev;
},0);
console.log(result);
'JS' 카테고리의 다른 글
#자바스크립트 스터디 8 - 클로저, setTimeout, call/apply/bind (0) | 2023.11.08 |
---|---|
#자바스크립트 스터디 7 - 배열 구조 분해, 나머지 매개변수, 전개구문 (0) | 2023.11.07 |
#자바스크립트 스터디 5 - 배열메소드1 (0) | 2023.10.31 |
#자바스크립트 스터디 4 - Math 메소드, 문자열 메소드 (0) | 2023.10.31 |
#자바스크립트 스터디 3 - 객체 메소드(assign, keys 등), Symbol 데이터 (0) | 2023.10.29 |