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