【javascript语言精粹】第六章 数组

1.检测数组

var is_array = function(value){
    return value && typeof value === 'object' &&
            typeof value.length === 'number' &&
            typeof value.slice === 'function' &&
            !(value.propertyIsEnumerable('length'));
}

2.对是否改变原数组的常用方法归纳

改变原数组的:

  1. shift:  将第一个元素删除并且返回删除元素,空即为undefined
  2. unshift:向数组开头添加元素,并返回新的长度
  3. pop:删除最后一个并返回删除的元素
  4. push:向数组末尾添加元素,并返回新的长度
  5. reverse:颠倒数组顺序
  6. sort:对数组排序
  7. splice:splice(start,length,item)删,增,替换数组元素,返回被删除数组,无删除则不返回

不改变原数组的:

  1. concat:连接多个数组,返回新的数组
  2. join:将数组中所有元素以参数作为分隔符放入一个字符
  3. slice:slice(start,end),返回选定元素
  4. map,filter,forEach,some,every等不改变原数组

splice方法:

1.删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数)

2.插入-向数组指定位置插入任意项元素。三个参数,第一个参数(其实位置),第二个参数(0),第三个参数(插入的项)

3.替换-向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数。第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项)

var lang = ["php","java","javascript"];   
//删除   
var removed = lang.splice(1,1);   
alert(lang); //php,javascript   
alert(removed); //java ,返回删除的项   
//插入   
var insert = lang.splice(0,0,"asp"); //从第0个位置开始插入   
alert(insert); //返回空数组   
alert(lang); //asp,php,javascript   
//替换   
var replace = lang.splice(1,1,"c#","ruby"); //删除一项,插入两项   
alert(lang); //asp,c#,ruby ,javascript  

 sort方法

Javascript方法的默认比较函数假定所有要排序的元素都是字符串,因此在比较数字时可以用自己的比较函数来替换默认的比较函数。

var m = ['aa','bb',1,4,2,5];
m.sort(function(a,b){
    if(a === b){
        return 0;
    }
    if(typeof a === typeof b){
        return a < b ? -1 : 1;
    }
    return typeof a < typeof b ? -1 : 1;
});
posted @ 2018-03-23 17:23  vxee  阅读(133)  评论(0编辑  收藏  举报