1
이 같은 배열이이 같은정렬 배열
var a = [
{id: 1, pid: 0},
{id: 2, pid: 1},
{id: 3, pid: 1},
{id: 4, pid: 2},
{id: 5, pid: 2},
{id: 6, pid: 3},
{id: 7, pid: 3}
]
그리고지도 개체 :
var result = [
{"id": 1, "pid": 0},
{"id": 2, "pid": 1},
{"id": 4, "pid": 2},
{"id": 5, "pid": 2},
{"id": 3, "pid": 1},
{"id": 6, "pid": 3},
{"id": 7, "pid": 3}
]
:
var map = {
"1": {id: 1, pid: 0},
"2": {id: 2, pid: 1},
"3": {id: 3, pid: 1},
"4": {id: 4, pid: 2},
"5": {id: 5, pid: 2},
"6": {id: 6, pid: 3},
"7": {id: 7, pid: 3}
}
나는이 패턴을 일치하도록 정렬 노력하고 있어요
위에서 알 수 있듯이 중첩 트리 구조입니다. 그리고 id
아래에 pid
을 입력하고 상단에 가장 낮은 숫자는 id
입니다.
하나의 반복 만 사용하여 이런 식으로 배열을 정렬 할 수있는 방법이 있습니까? - 그렇지 않다면 주위를 둘러 보는 방법에 대한 예를 보는 것이 좋습니다.
a.sort(function(q, w) { return q.pid - w.pid; });
그리고 pid
사용하여 내 부모 찾을 수 내지도를 사용하여 생각 해요 - 그 키에 종류 다음>id
를 실행 한 다음,
지금까지 난 단지있다. 내 개체에 추가 속성을 저장하는 것도 괜찮습니다.
이 중첩 된 것처럼 당신은 그것을 들여 쓰기를하고 있지만 실제로 어떤 배열이나 객체를 중첩하지 않은 . – Barmar
당신은 *** 단지 두 가지 요소에 대해서 알고있는 간단한 비교 함수로 *** 할 수 없습니다! – phant0m
@Barmar 나는 그가 기본적으로 나무를 갖고 선주문과 선형화되기를 원한다고 생각합니다. – phant0m