본문 바로가기

JAVASCRIPT

JAVASCRIPT ) 객체

객체는 key(love)와 value(1005)로 이루어져있으며,

객체는 순서를 보증하지 않는다.

즉 index가 없다.

 

const myO = {
    'zard': 1004, 'love': 1005, 'cdr': 1006
}
document.write( myO + "<br>");
document.write( myO.cdr + "<br>");
document.write( myO['zard'] + "<br>");

// [object Object]
// 1006
// 1004

 

객체의 다양한 표기법

const myO = {
    'cdr': [ 1006, 1007, 1008], 
    'zard': 1004, 
    'love': ['hoho', 'haha', 'hihi']
}
// myO
// myO.cdr
// myO.cdr[0] /  myO.cdr[1] / myO.cdr[2]
// myO['cdr'][0] / myO['cdr'][1] / myO['cdr'][2]
// myO.zard
// myO['zard']
// myO.love
// myO.love[0] / myO.love[1] / myO.love[2] 
// myO.love[0][0] / myO.love[2][1]
// myO['love'][0][0] / myO['love'][2][1]

 

 

 

어떠한 값을 낼 때 객체로 사용범위를 한정하는것이 더 좋다.

 

// const inputValue1 = Number( prompt("Number?") );
// const inputValue2 = Number( prompt("Number?") );
// const totalValue = inputValue1 + inputValue2;
// document.write( totalValue );
    
const addOp = {
    inputValue1: 0,
    inputValue2: 0,
    totalValue: 0
}

addOp.inputValue1 = Number( prompt("Number?") );
addOp.inputValue2 = Number( prompt("Number?") );
addOp.totalValue = addOp.inputValue1 + addOp.inputValue2;
document.write( addOp.totalValue );

 

 

 

객체 for문

const myO = { a: 2004, b: 2005, c: 2006 }
for(objectKey in myO){
    document.write( myO[objectKey] )	// 200420052006
    document.write( myO.objectKey )	// undefinedundefinedundefined
}

 

 

 

객체인지 배열인지 확인하는 함수 예제

const myV1 = [ 
    "zard",
    { love: 1004, loves: 1005, like: "cdr" },
    1234,
    true
];
const myV2 = { a: 2004, b: 2005, c: 2006 };
const myV3 = 1234;
const myV4 = "안녕";

const test = myV3;


function checkOject(){
    if( typeof test == 'object' ) {
        if( Array.isArray(test) ) {
            checkArray();
        } else {
            document.write( "이 변수는 객체입니다." + "<br>" );
            for (key in test) {
                document.write( test[key] + "<br>" );
            }
        }
    } else {
        document.write( "이 변수는 배열도 객체도 아닙니다." );
    }
}

function checkArray(){
    if( Array.isArray(test) ) {
        document.write( "이 변수는 배열입니다." + "<br>" );
        for( let i=0; i<test.length; i++ ){
            document.write( test[i] + "<br>" );
        }
    } else {
        checkOject(myV);

 

const myO = {
	zard: [1004, 1005, 1006],
    love: 123456789,
    cdr: {
    	key1: 'zard',
        key2: 'love',
        key3: 'cdr'
    }
}

function travelObject(obItem){
	for(const key in obItem){
        if( typeof obItem[key] == 'object'){
            if(Array.isArray(obItem[key])){
                for(let i=0; i<obItem.zard.length; i++){
                    document.write(obItem.zard[i] + "<br>");
                }
            } else {
                for(const keyKey in obItem[key]){
                    document.write(obItem[key][keyKey] + "<br>");
                }
            }
        } else {
            document.write(obItem[key] + "<br>");
        }
    }
}

travelObject(myO);

 

 

반응형

'JAVASCRIPT' 카테고리의 다른 글

JAVASCRIPT ) .length  (0) 2024.07.10
JAVASCRIPT ) 진수 표현법  (0) 2024.07.09
JAVASCRIPT ) 배열  (0) 2024.07.04
JAVASCRIPT ) 함수  (1) 2024.07.03
JAVASCRIPT ) 반복문  (0) 2024.07.03