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––; //有效删除最后一个元素
}

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