码迷,mamicode.com
首页 > 其他好文 > 详细

Array 对象方法

时间:2016-02-16 16:45:17      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:

  • 转换方法:toLocaleString()、toString()、valueOf()

其中toString()和valueOf()无论重写了谁,都会返回相同的值。数组会将每个值进行字符串形式的拼接,以逗号隔开。

var box = [‘小明‘, 28, ‘江苏‘, new Date()];
alert(typeof box);                            //object
alert(typeof box.toString());                //string
alert(typeof box.valueOf());                //object
alert(typeof box.toLocaleString());        //string 本地格式区域字符串

 

  • join()方法

默认情况下,数组字符串都会以逗号隔开。如果使用join()方法,则可以使用不同的分隔符来构建这个字符串。

var box = [‘小明‘, 28, ‘江苏‘];
alert(box.join(‘|‘));    
//方法运行过后返回按|分割的字符串 弹出:小明|28|江苏 alert(box);
//原数组没有任何变化,类型还是object 弹出:小明,28,江苏

 

  • push()和pop()方法 (栈方法)

栈是一种数据结构(后进先出),也就是说最新添加的元素最早被移除。而栈中元素的插入(或叫推入)和移除(或叫弹出),只发生在一个位置——栈的顶部。ECMAScript为数组专门提供了push()和pop()方法。

技术分享

push()方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一个元素,减少数组的length值,然后返回移除的元素。

var box = [‘小明‘, 28, ‘盐城‘];
alert(box.push(‘计算机编程‘,‘江苏‘)); 
//给数组末尾添加了2个元素,并返回数组最新长度 alert(box); //返回最新数组元素 alert(box.pop()); //移除数组最后的元素,并且返回移除的元素 alert(box); //返回最新数组元素

 

  • push()和shift()方法 (队列方法)

栈方法是后进先出,而列队方法就是先进先出。列队在数组的末端添加元素,从数组的前端移除元素。通过push()向数组末端添加一个元素,然后通过shift()方法从数组前端移除一个元素。

技术分享

var box = [‘小明‘, 28, ‘盐城‘];
alert(box.push(‘计算机编程‘));    
alert(box);
alert(box.shift());            //移除数组开头的一个元素,并且返回这个元素
alert(box);

 

  • unshift()方法

ECMAScript还为数组提供了一个unshift()方法,它和shift()方法的功能完全相反。unshift()方法为数组的前端添加一个元素。

var box = [‘小明‘, 28, ‘男‘];
alert(box.unshift(‘江苏‘)); 
//给数组前端添加一个元素,并且返回最新的长度 alert(box);   //弹出:江苏,小明,28,男

 

  • 排序方法 reverse()和sort()

reverse()逆向排序,sort()从大到小排序。

var box = [1,2,3,4,5];
alert( box.reverse());     //方法执行后返回一个逆序后的数组
alert( box);              //原数组也被逆序了。

var box = [4,1,6,2,7,3,9];
alert(box.sort());       //从小到大排序
alert(box);                    

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

<script type="text/javascript">

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />") //输出:10,5,40,25,1000,1
document.write(arr.sort())    //输出:1,10,1000,25,40,5

</script>

上面的代码是按照字母顺序进行排序,没有按照数值的大小对数字进行排序,要实现按数值顺序这一点,必须用一个排序函数:

function sortNumber(a,b){
        return a-b;
}
var box = ["0","12","5","10","15"];
alert(box.sort(sortNumber));  //弹出:0,5,10,12,15
alert(box.reverse());

 

  • contact()方法可以基于当前对象创建一个新数组。
var box = [‘小明‘, 28, ‘男‘];
var box2 = box.concat(‘计算机编程‘);
alert(box2); //弹出:小明,28,男,计算机编程
alert(box)   //弹出:小明,28,男

 

  • slice()方法可以基于数组获取指定区域元素并创建一个新数组。
var box = [‘小明‘, 28, ‘男‘,‘计算机编程‘];
var box2 = box.slice(1);//从下标位置1开始选取至数组末尾
alert(box2);        //弹出:28,男,计算机编程

var box = [‘小明‘, 28, ‘男‘,‘计算机编程‘,‘江苏‘];
var box2 = box.slice(1,3);   
//而是从第1个下标位置的元素取到第3个下标位置前的一个元素 alert(box2);    //弹出:28,男

 

  • splice()主要用途是向数组中插入元素。
//splice中的删除功能:
var box = [‘小明‘, 28, ‘男‘,‘江苏‘,‘计算机编程‘];
var box2 = box.splice(0,2); //这里表示删除从index0开始的2个元素,
alert(box2);           //弹出:小明,28
alert(box);           //弹出:男,江苏,计算机编程

//splice中的插入功能:
var box = [‘小明‘, 28, ‘男‘];
var box2 = box.splice(0,0,‘江苏‘,‘计算机编程‘);
//从index0前插入元素,0表示不删除 alert(box2);         //弹出空白 alert(box);          //弹出:江苏,计算机编程,小明,28,男 //splice中的替换功能: var box = [‘小明‘, 28, ‘男‘]; var box2 = box.splice(0,1,‘小新‘);
//将删除位于 index 0 的元素,并添加一个新元素来替代被删除的元素: alert(box2) //弹出:小明 alert(box);  //弹出:小新,28,男

 

Array 对象方法

标签:

原文地址:http://www.cnblogs.com/sosomark/p/5192859.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!