반응형
자바스크립트 작업중.. 데이터 타입에 혼돈이 올때가 있다. 그 중 하나는 바로 object 와 Array
예상했던 데이터 타입이 Array 로 여겨졌는데 실상 object 인 경우가 있더라.. 다음과 같이 형 변환을 해주면 된다.
var a;
if ( b instanceof Array) {
b = a;
} else {
a = new Array;
a.push(b);
}
instanceof 연산자는 object 가 class의 인스턴스이면 true 를 반환, object가 지정된 클래스의 인스턴스가 아니거나 object가 null이면 false를 반환한다.
* instanceof (w3resource / mozilla)
더불어 PHP 에서 object 와 Array 의 변환 function
/* function : Array -> object */
function parseArrayToObject($arrary) {
$object = new stdClass();
if (is_array($array) && count($array) > 0) {
foreach ($array as $name=>$value) {
$name = strtolower(trim($name));
if (!empty($name)) {
$object->$name = $value;
}
}
}
return $object;
}
/* function : object -> Array */
function parseObjectToArray($object) {
$array = array();
if (is_object($object)) {
$array = get_object_vars($object);
}
return $array;
}
/* convert Array $a -> object $o */
$a = array(
'i0' => 'v0',
'i1' => 'v1',
'i2' => 'v2'
);
$o - parseArrayToObject($a);
echo $o->i2; // 결과 : v2
/* convert object $o -> Array $a */
$o = new stdClass();
$o->i0 = 'v0';
$o->i1 = 'v1';
$o->i2 = 'v2';
$a = parseObjectToArray($o);
echo $a['i2']; // 결과 : v2
PHP 에서는 get_object_vars 를 통해서 object 를 Array 로 간단히 변환 가능하다.
반응형