Object를 Array로 변환

 

Tree 형태의 Object를 하나의 Array로 변환하는 함수이다.

/*
	변환 전
	parent : {
		a : a,
		children : [{b : b}, {c : c}]
	}
	
	변환 후 
	[{a, a}, {b : b}, {c : c}]
	*/

 

function convertObjectToArray(tree) {
	const list = [];

	function pushItem(node) {
		if (!node) return;

		node.forEach(item => {
			list.push(item);

			const childrenKeyList = Object.keys(item).filter(key => Array.isArray(item[key]));

			if (childrenKeyList.length > 0) {
				childrenKeyList.forEach(childKey => {
					const child = cloneDeep(item[childKey]);

					delete item[childKey];
					pushItem(child);
				});
			}
		});
	}

	pushItem(cloneDeep(tree));

	return list;
}

'Front-End > Function' 카테고리의 다른 글

파일 다운로드  (0) 2023.05.16