javascript 中的數組Array及樹的實現

 javascript 中的數組Array

1.聲明:
var array = new Array( );
可以不用聲明長度,使用時像JAVA中的vector。即使聲明瞭長度,也可以越界使用:
var a = new Array(3); a[3] = 3;

2.一個數組中可以存儲不同類型的數據,像vector。
3.一個數組具有length屬性,表明長度。
4.數組中的delete( )操作只會去掉這個元素,但不會去掉這個位置,也即長度不變。
可以用下面這個函數刪除第N個元素的函數:

5.用Array實現的一棵樹

<HTML>
<HEAD>
<TITLE>Deleting a child object</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE="JavaScript">

function createDog(name, color) {
  var dog = new Array();
  dog[0] = name;
  dog[1] = color;  
  return dog;
}

function append(parent, child) {
  parent[parent.length] = child;
}

var bo = createDog("bo", "brown");
var boli = createDog("boli", "black and white");
var boy = createDog("boy", "brown");
var bulbul = createDog("bulbul", "brown");
var boni = createDog("boni", "black and white");
var spotty = createDog("spotty", "black and white");
var mary = createDog("mary", "black and white");
append(bo, boli);
append(bo, boy);
append(boli, bulbul);
append(boli, boni);
append(boni, spotty);
append(boni, mary);

function deleteElement(array, n) {
  //delete the nth element of array
  var length = array.length;
  if (n >= length || n<0)
    return;

  for (var i=n; i<length-1; i++)
    array[i] = array[i+1];
  array.length––;
}

function navigate(dog, generation) {
  var name = dog[0];
  for (var i=1; i<generation; i++)
    document.write(">>");
  document.write(name + "<BR>");
  generation++;
  for (var j=2; j<dog.length; j++ )   // has descendants
    navigate(dog[j], generation);
}

navigate(bo, 1);
deleteElement(boni, 2);
navigate(bo, 1);


</SCRIPT>
</BODY>
</HTML>

function deleteElement(array, n) {
  //delete the nth element of array
  var length = array.length;
  if (n >= length || n<0)
    return;

  for (var i=n; i<length-1; i++)
    array[i] = array[i+1];
  array.length––; //有效刪除最後一個元素
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章