对象与方法
一、数组(Array)
1.使用new关键字创建数组
var box = new Array(); //创建了一个数组
个元素的数组
var box = new Array('李炎恢',28,'教师','盐城'); //创建一个数组并分配好了元素
2.以上三种方法,可以省略new关键字。
var box = Array(); //省略了new关键字
使用字面量方式创建数组
var box = []; //创建一个空的数组
var box = ['李炎恢',28,'教师','盐城']; //创建包含元素的数组
个元素
var box = [,,,,,]; //同样,IE的会有识别问题
PS:和Object一样,字面量的写法不会调用Array()构造函数。(Firefox除外)。
- 使用索引下标来读取数组的值
alert(box[2]); //获取第三个元素
box[2] = '学生'; //修改第三个元素
box[4] = '计算机编程'; //增加第五个元素
- 使用length属性获取数组元素量
alert(box.length) //获取元素个数
box.length = 10; //强制元素个数
box[box.length] = 'JS技术'; //通过length给数组增加一个元素
- 创建一个稍微复杂一点的数组
var box = [
{ //第一个元素是一个对象
name : '李炎恢',
age : 28,
run : function () {
return 'run了';
}
},
['马云','李彦宏',new Object()],//第二个元素是数组
'江苏', //第三个元素是字符串
25+25, //第四个元素是数值
new Array(1,2,3) //第五个元素是数组
];
alert(box);
个元素,超出即会发生异常。
二、一些方法
1.转换方法
对象或数组都具有toLocaleString()、toString()和valueOf()方法。其中toString()和valueOf()无论重写了谁,都会返回相同的值。数组会讲每个值进行 字符串形式的拼接,以逗号隔开。
join()方法使用不同的分隔符来构建这个字符串
var box = ['李炎恢', 28, '计算机编程'];
alert(box.join('|')); //李炎恢|28|计算机编程
2.栈是后进先出,有push()和pop()方法
队列是先进先出,有push()和shift()方法
3.重排序方法:
1)reverse()逆向排序
2)sort()从小到大
sort方法的默认排序在数字排序上有些问题,因为数字排序和数字字符串排序的算法是一样的。我们必须修改这一特征,修改的方式,就是给sort(参数)方法传递一个函数参数。这点可以参考手册说明。
function compare(value1, value2) { //数字排序的函数参数
if (value1 < value2) { //小于,返回负数
return -1;
} else if (value1 > value2) { //大于,返回正数
return 1;
return 0;
}
var box = [0,1,5,10,15]; //验证数字字符串,和数字的区别
alert(box.sort(compare)); //传参
4.操作方法
1)concat()方法可以基于当前数组创建一个新数组。
2)slice()方法可以基于当前数组获取指定区域元素并创建一个新数组。splice()主要用途是向数组的中部插入元素。
var box = ['李炎恢', 28, '盐城','计算机编程','江苏'];
var box2 = box.slice(1,3); //这里不是从第1个位置取3个
alert(box2); //而是从第1个位置取到第3个位置
var box = ['李炎恢', 28, '盐城'];
var box2 = box.splice(0,2); //这里表示从第0个位置取2个,
alert(box2); //而不是从第0个位置取到第2个位置
var box = ['李炎恢', 28, '盐城'];
var box2 = box.splice(0,2); //这里表示从第0个位置取2个,
alert(box2); //而不是从第0个位置取到第2个位置
alert(box);
var box = ['李炎恢', 28, '盐城'];
var box2 = box.splice(1,0,'江苏','计算机编程'); //从第1个插入点插入元素,0表示不删除
alert(box2);
alert(box);
*/
var box = ['李炎恢', 28, '盐城']; //替换
var box2 = box.splice(1,1,100);
alert(box2);
alert(box);