多くの筆記試験問題をつづる-プログラミング


【タイトル本意:配列構造データをチェーン構造に変換し、その時は読めなかった…ううう…】入力:
var arr = [
   {id : 1, parents : null},
   {id : 2 , parents : 1},
   {id : 3 , parents : 2},
]

出力:
var obj = {
	obj1: {
		id:1,
		parents:null,
		child:{
			id:2,
			parents:1,
			child: {
				id:3,
				parents:2,
			}
		}
    }
}
function arrayTolist(ary) {
  if (!ary.length) {
    return null
  }
  var node
  var head = { id: ary[0].id, parents: null }
  var preNode = head
  for (var i = 1; i < ary.length; i++) {
    node = { id: ary[i].id, parents: preNode.id }
    preNode.child = node
    preNode = node
  }
  return head
}

PS:ついでにチェーンテーブル回転配列を実現
function listToArray(obj) {
  if (!obj) {
    return []
  }
  var result = []
  while (obj) {
    result.push({ id: obj.id, parents: obj.parents })
    obj = obj.child
  }
  return result
}