Object(객체) 다루기


Object(객체) 란 무엇인가?

1. key: value 쌍을 가지는 자료구조입니다.

2. value 에 문자, 숫자, 배열, 객체, 함수를 할당할 수 있습니다.

 

1. 오브젝트 데이터 생성

const objPersons = {
  persons: [
    {name: "kim", age: 20, gender: "man"}, 
    {name: "vicky", age: 22, gender: "women"},
    {name: "gloria", age: 42, gender: "women"},
    {name: "gom", age: 27, gender: "man"},
  ]
};

Object 안에 Array 가 있고, 그 Array 안에 다시 Object가 배치되어있습니다.

objPersons는 현재 { key: [ {key: value}, {key: value}, {key: value}, {key: value} ] } 이러한 형식과 동일합니다.

 

2. 오브젝트 데이터 가공하기

const {persons} = objPersons
// ES5: const persons = Object.assign([], objPersons.persons)와 동일
const mapPersons = Object.values(persons).map(v => Object.keys(v).map(v2 => v[v2]))
const filteredPersonsAge = persons.filter( v => v.age > 25 )

작업 순서대로 나열해 보겠습니다.

1. objProject 에서 persons 만 빼와서 블록상수로 참조합니다.

2. persons의 value들을 돌며 key와 일치하는 값들을 mapPersons에 새로운 배열을 반환합니다.

3. persons의 value들을 돌며 일치한 값만 filteredPersonsAge에 새로운 배열을 반환합니다. 

 

3. 값 확인하기

console.log(persons)
>>> [ 
  { name: 'kim', age: 20, gender: 'man' },
  { name: 'vicky', age: 22, gender: 'women' },
  { name: 'gloria', age: 42, gender: 'women' },
  { name: 'gom', age: 27, gender: 'man' } 
]

console.log(mapPersons)
>>> [
  [ 'kim', 20, 'man' ],
  [ 'vicky', 22, 'women' ],
  [ 'gloria', 42, 'women' ],
  [ 'gom', 27, 'man' ] 
]

console.log(filteredPersonsAge)
>>> [
  { name: 'gloria', age: 42, gender: 'women' },
  { name: 'gom', age: 27, gender: 'man' } 
]

'Javascript' 카테고리의 다른 글

배열의 중복값 제거  (0) 2019.04.25
[자료구조]  (0) 2019.04.25
다수의 엘리먼트에 이벤트 등록하기  (0) 2019.04.11
base64 인코딩, 디코딩하기!  (0) 2019.04.11
Promise Chain 구성하기  (0) 2019.04.11
  

    #특명 : 이름에 "g" 가 들어간 사람들을 찾아야한다!

    

    var person = [

        {

            "name": "kim",

            "age": "20",

            "gender": "man"

        }, {

            "name": "vicky",

            "age": "22",

            "gender": "women"

        },

        {

            "name": "gloria",

            "age": "42",

            gender: "women"

        }, {

            "name": "gom",

            "age": "27",

            "gender": "man"

        }

    ];

    

    // 객체가 담은 배열 person에 filter 메서드 사용

    // 배열 순서대로 객체단위로 쪼개어 load 라는 매개변수로 할당

    // 객체 순서대로 name 에 우리가 원하는 문자열이 있는지 탐색

    // 해당 문자열이 있는 경우 참, 거짓으로 리턴된다.

    // filter메서드는 참의 결과들만 모아 배열로 반환한다.

    

    function arrayFilter(_objInArray, _findValue) {

        return _objInArray.filter(function(load) {

            return load.name.includes(_findValue);

        });

    };

    

    arrayFilter(person, "g");

    

    

    //결과 Array

 [

    {name: "gloria", age: "42", gender: "women"},

    {name: "gom", age: "27", gender: "man"}

]

    

'Frontend' 카테고리의 다른 글

jQuery를 pure js, vue.js로 바꿔보자  (0) 2019.02.25
뷰 설치  (0) 2019.02.12
[jQuery] 쇼핑몰-썸네일영상띄우기  (0) 2019.01.21
userAgent를 활용한 브라우저 감지  (0) 2019.01.11
[button]pulse 버튼 만들기  (0) 2019.01.10

some 메소드는 Array에 쓸 수 있는 메소드중 하나이다.

some 메소드는 비교하고자 하는 배열( nameArray )에 찾는 값( findValue )이

하나라도 있다면 Boolean 값인 true, 하나라도 없다면 false를 반환한다.

 

See the Pen Array.prototype.some by Choidaeboem (@choidaeboem) on CodePen.

 

 

+ Recent posts