数组和对象的方法

233 阅读3分钟

对象和数组的方法

  1. 均有的方法 toString(),valueOf(),toLocaleString()

举个栗子 var box = ['李炎恢',28,'计算机编程']; //字面量数组

alert(box); //隐式调用了 toString()

alert(box.toString()); //和 valueOf()返回一致

alert(box.toLocaleString());//返回值和上面两种一致

均返回:李炎恢,28,计算机编程

  1. 数组的方法
  • 栈方法 push()

pop()

举个栗子

var box = ['李炎恢', 28, '计算机编程']; //字面量声明

alert(box.push('盐城')); //数组末尾添加一个元素,并且返回长度

alert(box); //查看数组

box.pop(); //移除数组末尾元素,并返回移除的元素

alert(box); //查看元素

  • 队列方法

shift()

举个栗子

var box = ['李炎恢', 28, '计算机编程']; //字面量声明

alert(box.push('盐城')); //数组末尾添加一个元素,并且返回长度

alert(box); //查看数组

alert(box.shift()); //移除数组开头元素,并返回移除的元素

alert(box); //查看数组

unshift()

举个栗子

var box = ['李炎恢', 28, '计算机编程'];//字面量声明

alert(box.unshift('盐城','江苏'));//数组开头添加两个元素

alert(box);//查看数组

alert(box.pop());//移除数组末尾元素,并返回移除的元素

alert(box);//查看数组

  • 重排序方法 (1)reverse()逆向排序

举个栗子 var box = [1,2,3,4,5];//数组

alert(box.reverse());//逆向排序方法,返回排序后的数

alert(box);//源数组也被逆向排序了,说明是引用

(2)sort()从小到大

举个栗子

var box = [4,1,7,3,9,2];//数组

alert(box.sort());//从小到大排序,返回排序后的数组

alert(box);//源数组也被从小到大排序了

ps注意sort 方法的默认排序在数字排序上有些问题,因为数字排序和数字字符串排序的算法是 一样的。我们必须修改这一特征,修改的方式,就是给 sort(参数)方法传递一个函数参数。

function compare(value1, value2) {//数字排序的函数参数

if (value1 < value2) {//小于,返回负数

return -1;

} else if (value1 > value2) {//大于,返回正数

return 1;

} else {//其他,返回 0

return 0;

}

var box = [0,1,5,10,15]; //验证数字字符串,和数字的区别

alert(box.sort(compare)); //传参

如果要反向操作,即从大到小排序,正负颠倒即可。当然,如果要逆序用 reverse() 更加方便。

  • 操作方法 (1)**concat()**方法可以基于当前数组创建一个新数组。

var box = ['李炎恢', 28, '盐城'];//当前数组

var box2 = box.concat('计算机编程'); //创建新数组,并添加新元素

alert(box2); //输出新数组

alert(box); //当前数组没有任何变化

(2)**splice()**方法可以基于当前数组获取指定区域元素并创建一个新数组。 splice()主要用途是向数组的中部插入元素。

a. var box = ['李炎恢', 28, '盐城']; //当前数组

var box2 = box.slice(1); //box.slice(1,3),2-4 之间的元素

alert(box2); //28,盐城

alert(box); //当前数组

b.删除功能

var box = ['李炎恢', 28, '盐城']; //当前数组

var box2 = box.splice(0,2); //截取前两个元素

alert(box2); //返回截取的元素

alert(box); //当前数组被截取的元素被删除

c.插入功能 var box = ['李炎恢', 28, '盐城'];//当前数组

var box2 = box.splice(1,0,'计算机编程','江苏');//没有截取,但插入了两条

alert(box2);//在第 2 个位置插入两条

alert(box);//输出

d.替换功能 var box = ['李炎恢', 28, '盐城']; //当前数组

var box2 = box.splice(1,1,100); //截取了第 2 条,替换成 100

alert(box2); //输出截取的 28

alert(box); //输出数组