Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- BPMN
- log4j2
- database
- kubectl
- nginx
- gson
- NCP
- tibero
- wildfly
- JPA
- Windows
- docker
- mybatis
- IntelliJ
- useEffect
- Java
- LOG4J
- dbeaver
- Kubernetes
- VSCode
- MySQL
- gradle
- Git
- JavaScript
- jetbrains
- react
- Spring
- springboot
- nodejs
- intellijIDEA
Archives
- Today
- Total
두 손끝의 창조자
json 요소 이동 본문
function moveElementInJson(json, sourceId, destinationId, newIndex) {
// 복제된 JSON 생성
const updatedJson = JSON.parse(JSON.stringify(json));
// 소스 요소 찾기
const sourceElement = findElementById(updatedJson, sourceId);
if (!sourceElement) {
console.error('Source element not found.');
return null;
}
// 소스 요소를 제거
const removedElement = removeElementById(updatedJson, sourceId);
// 대상 위치에 요소 삽입
const destinationElement = findElementById(updatedJson, destinationId);
if (destinationElement && destinationElement.children) {
destinationElement.children.splice(newIndex, 0, removedElement);
} else {
console.error('Destination element not found or is not a directory.');
return null;
}
return updatedJson;
}
function findElementById(json, id) {
for (const element of json) {
if (element.id === id) {
return element;
} else if (element.children) {
const childElement = findElementById(element.children, id);
if (childElement) {
return childElement;
}
}
}
return null;
}
function removeElementById(json, id) {
for (let i = 0; i < json.length; i++) {
if (json[i].id === id) {
return json.splice(i, 1)[0];
} else if (json[i].children) {
const removedElement = removeElementById(json[i].children, id);
if (removedElement) {
return removedElement;
}
}
}
return null;
}
// 사용 예시
const updatedJson = moveElementInJson(wsListData, '6551c3f72c4b8ee56604d2fa', '6551c5992c4b8ee56604d302', 2);
console.log(updatedJson);
반응형
Comments