Javascript 배열(Array) – 배열과 객체 활용 3/3
* array , Object : find , filter , map , some ,every
// 배열 선언과 함께 초기화
var employees = [
new Employee(1 , “test1” , 20 , “영업” , false) ,
new Employee(2 , “test2” , 35 , “기술” , false) ,
new Employee(3 , “test3” , 26 , “자재” , false)
]
// push로 추가 삽입 하기
employees.push(new Employee(4, “test4”, 51 , “인사” , true));
employees.push(new Employee(5 ,”test5″, 30 , “기술” , true));
// class 객체 생성후 push
let new_member = new Employee(6 , “test6” , 19 , “기술” , false)
employees.push(new_member)
employees.forEach( (item , index, totObj) =>{
console.log(item)
});
[
{no: 1, name: ‘test2’, age: 35, dept: ‘기술’, dayoff: false}
{no: 2, name: ‘test2’, age: 35, dept: ‘기술’, dayoff: false}
{no: 3, name: ‘test3’, age: 26, dept: ‘자재’, dayoff: false}
{no: 4, name: ‘test4’, age: 51, dept: ‘인사’, dayoff: true}
{no: 5, name: ‘test5’, age: 30, dept: ‘기술’, dayoff: true}
{no: 6, name: ‘test6’, age: 19, dept: ‘기술’, dayoff: false}
]
ㆍFind (Return : 함수내 조건에 맞는 결과 있을시 최초 1개만 – 배열로)
{no: 2, name: ‘test2’, age: 35, dept: ‘기술’, dayoff: false}
// index 와 해당 배열 을 사용하지 않으므로 줄여쓰기
console.log(findItem2)
{no: 2, name: ‘test2’, age: 35, dept: ‘기술’, dayoff: false}
ㆍFilter (함수내 조건에 맞는 결과 모두 리턴 – 배열로)
// 없으면 : filterItem = undefined
let filterItem = employees.filter ( (item,index , totOobj)=> {
console.log(deptList)
[‘영업’, ‘기술’, ‘자재’, ‘인사’, ‘기술’, ‘기술’]
{이름: ‘test1’, 부서: ‘영업’}
{이름: ‘test2’, 부서: ‘기술’}
{이름: ‘test3’, 부서: ‘자재’}
{이름: ‘test4’, 부서: ‘인사’}
{이름: ‘test5’, 부서: ‘기술’}
{이름: ‘test6’, 부서: ‘기술’}
ㆍSome (Return : 조건에 맞는 항목이 1개라도 있으면 True , or False)
// let isExists2 = employees.some( (item) => item.age >= 50 )
console.log(isSatisfiedJustOne);
True
ㆍEvery (Return : 조건에 모든 항목이 맞아야 True or False)
// 리턴 : “항목조건” 을 모든 항목이 만족해야 true or false
// 사원번호 10 이하 인지 : 전체 항목들의 사원번호가 10 이하여야 true
// 사원번호 10 이하 인지 : 전체 항목들의 사원번호가 10 이하여야 true
false // 51 이 있음
ㆍReduce ( return : 최종 누적값(acc) 를 리턴)
{no: 6, name: ‘test6’, age: 19, dept: ‘기술’, dayoff: false}
{
—— reduce start —————
let orderTmp = [];
orderTmp = employees.map( (v, i) => {
return v.dept;
});
console.log(orderTmp); // [‘영업’, ‘기술’, ‘자재’, ‘인사’, ‘기술’, ‘기술’]
orderTmp.sort();
console.log(orderTmp); // [‘기술’, ‘기술’, ‘기술’, ‘영업’, ‘인사’, ‘자재’]
orderTmp = employees.map( (v, i) => {
return v.age;
});
//orderTmp.sort(); // unicode 순서대로 기본 오름차순
console.log(orderTmp); // [19, 20, 26, 30, 35, 51]
orderTmp.sort( (a,b) => {
return a – b; // a 가 b 보다 작으면 음수면 오름 차순 : 결과과 음수면 오름
// return b – a; // b 가 a 보다 작으면 음수면 내림 차순 : 결과과 양수면 내림
});
// 오름 차순
orderTmp.sort( (a,b) => {
if (a < b) return -1 ; else if(a > b) return 1; else return 0;
});
console.log(orderTmp);
// [19, 20, 26, 30, 35, 51] // 또는 orderTmp.sort( (a,b) => return a -b;); // 오름 차순
orderTmp.sort( (a,b) => {
if (a < b) return 1 ; else if (a > b) return -1; else return 0;
});console.log(orderTmp);
// [51, 35, 30, 26, 20, 19] // 또는 orderTmp.sort( (a,b) => return b -a;); // 내림차순