《javascript高级程序设计》
1:ECMAscript中的数组和其他语言中的数组的区别
一:数组中每一项的类型
ECMAscript中数组中每一项的类型任意
二:数组的长度
ECMAScript的数组的大小是可以动态调整的。
2:创建数组的方式
一:对象字面量
<scripttype="text/javascript">
var colors = ["red", "blue", "green"];//creates an array with three strings
var names = []; //creates an empty array
var values = [1,2,]; //AVOID! Creates an array with 2 or 3 items
var options = [,,,,,]; //AVOID! creates an array with 5 or 6 items
alert(colors.length); //3
alert(names.length); //0
alert(values.length); //2 (FF, Safari,Opera) or 3 (IE)
alert(options.length); //5 (FF,Safari, Opera) or 6 (IE)
</script>
二:Array构造函数
注意:够着函数根据传入的参数
一:创建n个数据项
二:只创建一个数据项
<script type="text/javascript">
var colors = new Array(3); //create an array with three items
var names = new Array("Greg"); //create an array with one item, the string "Greg"
alert(colors.length); //3
alert(names.length); //1
</script>
3:动态的增加数组中的数据项
一:使用一个大于数组中的项数的索引值
4:数组中length属性的特点(非只读)
一:数组的末尾移除项
var colors =["red", "blue", "green"]; //creates an array with three strings
colors.length = 2;
alert(colors[2]); //undefined
二:数组的末尾添加项
var colors = ["red","blue", "green"]; //creates an array with three strings
colors[colors.length] ="black"; //add a color
colors[colors.length] ="brown"; //add anothercolor
alert(colors.length); //5
alert(colors[3]); //black
alert(colors[4]); //brown
5:数据项的拼接有哪些方法?
toString()
valueOf()
join()
6: 数组中的栈方法
一:数据项的末端
push()
pop()
在数据结构中我们知道栈的实现主要是有两种方式,一:数组。二:链表。栈是实现算法的一个很基础的东西。
二:数据项的前段
shift()
unshift()
如果前段有了,后端也有了,就可以组合成队列了,或者说循环队列之类的。
7:排序方法
sort()
reverse()
reverse()和sort()方法的返回值是经过排序之后的数组。
8:操作方法
concat()在原来的数组项的基础上添加一些新的数据项
slice()以原有的数组创建一个新的数组
splice()对于数组中元素的操作(删除、插入、替换)
9:位置方法
indexOf()
lastIndexOf()
这两个方法都返回要查找的项在数组中的位置,或者在没有找到的情况下返回-1.
可以利用数组直接量的方式去访问元素,重点是在查找上面。
10.迭代方法(对于数值中的每一项进行遍历。)
some vs every
<script>
var numbers = [1,2,3,4,5,4,3,2,1];
var everyResult =numbers.every(function(item, index, array){
return (item > 2);
});
alert(everyResult); //false
var someResult =numbers.some(function(item, index, array){
return (item > 2);
});
alert(someResult); //true
</script>
<script>
var numbers = [1,2,3,4,5,4,3,2,1];
var filterResult =numbers.filter(function(item, index, array){
return (item > 2);
});
alert(filterResult); //[3,4,5,4,3]
</script>
filter
var numbers =[1,2,3,4,5,4,3,2,1];
var filterResult =numbers.filter(function(item, index, array){
return (item > 2);
});
alert(filterResult); //[3,4,5,4,3]
map
var numbers = [1,2,3,4,5,4,3,2,1];
var mapResult =numbers.map(function(item, index, array){
return item * 2;
});
alert(mapResult); //[2,4,6,8,10,8,6,4,2]