-
javascript : 너 정말 배열 맞냐? Array.isArray()캡틴 코딩일기/javascript 2020. 2. 2. 22:53728x90반응형
javascript : 너 정말 배열 맞냐? Array.isArray()
javascript 기초 개념을 배우고 있는 요즘,
배열과 객체의 관계에 대해서도 알게 되었다.
배열은 객체의 한 종류라는 사실.
실제로 console에서 typeof 연산자를 통해, 배열과 객체의 타입을 확인해 보면
아래와 같은 결과를 확인 할 수 있다.
typeof {a:1, b:2} "object" // 객체(object)는 당연히 object. typeof [1,2,3] "object" // 배열(array)이 객체(object)라고?
객체와 배열은 서로를 요소로서 포함 가능하다.
배열의 element로서 객체가, 객체의 value로서 배열이 할당 될 수 있다.
자칫 구분이 어려울 수 있는 배열과 객체를 명확하게 구분하여 줄 수 있는
Array.isArray( ) method에 대해 알아보자.
객체의 value으로 배열(array)이 할당되어 있을 때, 해당 값을 객체에서 제거하는 문제풀이를 해 보았다.
let obj = { // 객체 내 값(value)에 number, 배열(array), 문자열(string)이 혼재. a: [1, 2, 3], b: 10, c: 'Captain' } removeArrayValues(obj); // 이 함수에 변수로서 위의 객체를 대입하였을 시, console.log(obj); // --> { b: 2, c:'Captain' } // 기대되는 결과값을 상정하였다.
확인 및 삭제의 대상이 되는 요소는 '객체의 value'. 변수로서의 value는,
bracket notation을 사용한 obj [key]를 통해 확인이 가능하다.
자, 이제 확인 및 삭제의 기준이 되는 배열(array)인지 아닌지를 판단하기 위해,
드디어 Array.isArray() method가 등장한다.
이 method는 boolean값(true or false)를 출력하는 기능을 수행한다.
method 괄호 안에 판정용 변수를 입력한다.
실제 위 콘솔창에 입력한 조건을 가지고 함수를 만들어 보면 이렇다.
(주석에 진행과정을 함께 기재.)
function removeArrayValues(obj) { // 함수 이름 입력 for (let key in obj){ // for문(조건문)으로 객체 안의 key를 순차적으로 확인. if (Array.isArray(obj[key]) === true){ // if문(조건문)을 통해 obj[key]가 배열인지 확인. delete obj[key]; // Array.isArray() method가 참(true)인 경우에, 해당 값을 삭제. console.log('obj', obj) } return obj; // for문 ~ if문을 통해 해당 값을 삭제한 후, 결과로서의 객체를 리턴 해 준다. } } removeArrayValues({ a: [1, 2, 3], b: 10, c: 'Captain' }) VM1924:5 obj {b: 10, c: "Captain"}b: 10c: "Captain"__proto__: Object {b: 10, c: "Captain"}b: 10c: "Captain"__proto__: Object
위 진행과정에서 Array.isArray() method는 참 또는 거짓으로 판정 값을 출력하여,
다음 if문에서 처리하여야 할(= 삭제처리하여야 할) 대상을 정하는 전제값을 정해주는 역할을 수행한다.
* 5번째 줄에는, console.log()명령어를 입력하여, 객체 내 value가 순차적으로
확인 / 처리되는 과정에 결과를 순차적으로 확인 할 수 있도록 코드를 구성해 보았다.
해당 method는 객체 및 배열의 활용에 요긴하게 사용 될 것 같아서 스스로 개념을 정리하는
차원에서 문제풀이 과정과 함께 정리를 해 보았다.
728x90반응형'캡틴 코딩일기 > javascript' 카테고리의 다른 글
Twittler(Twitter clone) 구현하기 - (1) 개요 (0) 2020.03.07 TIL : underscore.js _.reduce method 만들기(javascript) (0) 2020.03.07 TIL : underscore.js _.uniq method 만들기 (javascript) (0) 2020.03.05 Javascript Array method(배열 메소드) map 복습 (0) 2020.02.16 JavaScript : let 을 통한, 선언 / 할당에 익숙해지자 (0) 2020.02.02