数组的一些内置方法

        1.栈方法
            push(1,2....n)  数组最后一个加元素        改变原来的数组    
            pop     删除数组最后一个元素              改变原来的数组
        2.队列方法
            push(1,2....n)  数组最后一个加元素       改变原来的数组
            shift   删除数组第一个元素               改变原来的数组
            unshift(1,2,3)  在数组前面添加元素       改变原来的数组
        3.排序方法
            reverse  颠倒数组顺序                 改变原来的数组
            sort     按照ascii排序                  改变原来的数组

            如果要按照数值大小比较 给sort传一个函数参数
            sort(demo)//demo后面不加括号
            funtion demo(value1,value2){
                if(value1>value2){
                    return 1;
                }else if(value1<value2){
                    return -1;
                }else{
                    return 0;
                }
            }
        4.操作方法
            concat(1,2...n) 拼接数组 并且生成一个新数组                               不改变原来的数组
            slice(start,end) end是索引 左闭右开 分割数组   返回值:返回新的数组   不改变原来的数组
            splice(index,howmany)  删除元素 howmany指的是删除的长度 返回值:被删除的元素构成的数组         改变原来的数组 
            splice(index,howmany, 要插入的元素)   删除元素并添加元素               改变原来的数组 
        5.join方法
            jion(拼接的字符串)   将数组元素通过分割符拼接起来,生成一个字符串         不改变原来的数组
        6.新增方法(item指的是数组中每个元素 index是索引 arr是指数组)
            forEach(function(item,index,arr){})     遍历  
            some(function(item,index,arr){})        判断数组中只要有一个元素满足条件  即返回true 否则返回false
            every(function(item,index,arr){})       数组中每一个数都得满足条件  才返回true  其他就返回false
            filter(function(item,index,arr){})            filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。不会改变原数组            ...
            indexOf(item)       判断元素在数组中第一次出现的位置(索引)   找不到-1
            lastIndexOf(item)   判断元素在数组中最后一次出现的位置(索引)   找不到返回-1
    //向数组中添加值
    var arr=new Array(1,2,3,4,5);
    var len=arr.push(7,9);
    console.log(len,arr);//array.push() 在数组末尾添加值, 返回添加后的数组长度
    var arr=new Array(1,2,3,4,5);
    var len=arr.unshift(7,9);
    console.log(len,arr);//array.unshift() 在数组开头添加值 ,返回添加后的数组长度 ,与array.push()相反

    //删除数组中的值
    var arr=new Array(1,2,3,4,5);
    var val=arr.pop();
    console.log(val,arr);//删除数组中末尾的值 返回删除的值
    var arr=new Array(1,2,3,4,5);
    var val=arr.shift();
    console.log(val,arr);//删除数组中开头的值 返回删除的值 与pop()相反

    //数组转换字符串
    var arr=new Array(1,2,3,4,5);
    var str=arr.join('-');//间隔的字符串,默认为“,”
    console.log(str);//1-2-3-4-5

    //数组排序
    var arr=new Array(1,2,3,4,5);
    arr.reverse();//反转排序
    console.log(arr)// [5, 4, 3, 2, 1]
    var arr=new Array(1,2,3,4,5,59,6);
    arr.sort();
    console.log(arr);//输出 [1, 2, 3, 4, 5, 59, 6] 注意:sort()默认是转换字符串再排序 所以按照数字大小排序不正确
    //正确方法 写比较函数
    arr.sort(function(a,b){return a-b}); //升序
    console.log(arr);//输出 [1, 2, 3, 4, 5, 6, 59]
    arr.sort(function(a,b){return b-a});//降序
    console.log(arr);//输出[59, 6, 5, 4, 3, 2, 1]

    //连接数组
    var arr1=[1,2,3];
    var arr2=[4,5,6];
    var arr3=[7,8,9];
    var arr=arr1.concat(arr2,arr3,[10,11]);
    console.log(arr);//输出 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

    //已有数组中返回选定元素
    var arr=new Array(1,2,3,4,5);
    var arr2=arr.slice(2);
    //第一个参数 start 开始选取的index 下标值 2为第三个值(0,1,2) 数字3开始 end 为可选 默认为到数组的末尾
    console.log(arr2);//输出 [3, 4, 5]
    //注意 end 参数为 该参数是数组片断结束处的数组下标 4 为 数字5的下标 截取5之前,也可以理成截取到end-1
    var arr2=arr.slice(2,4);
    console.log(arr2);//输出 [3, 4]  不是[3,4,5]
    //截取开始为负数
    var arr2=arr.slice(-2,4);
    //如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
    // 也可以转换成 数组长度(5)加 负数的值 (-2) 相当于arr.slice(3,4);
    console.log(arr2);//输出 [4]

    //splice()实现 删除 插入 替换数组
    //删除
    var arr=new Array(1,2,3,4,5);
    var arr2=arr.splice(1,2);//删除开始下标为1的值(2)开始的2个值 (2和3) 返回删除的值
    console.log(arr,arr2);//输出 [1, 4, 5] [2, 3]
    //插入
    var arr=new Array(1,2,3,4,5);
    var arr2=arr.splice(1,0,11,111);//在下标为1的值(2)之前插入值 ,参数第二个为0不删除,插入11,111
    console.log(arr,arr2);// [1, 11, 111, 2, 3, 4, 5] [] arr2返回为空数组 因为不删除
    //替换
    var arr=new Array(1,2,3,4,5);
    var arr2=arr.splice(1,2,11,111);//在下标为1的值(2)之前替换值 ,参数第二个为2删除2个值,再插入11,111
    console.log(arr,arr2);// [1, 11, 111, 4, 5] [2, 3]   //也就是 先删除再添加

    //查找值所在的下标
    var arr=new Array(1,2,3,4,5,6,7,3);
    var index=arr.indexOf(3);
    console.log(index);//返回2  检测第一个3出现的位置
    var index=arr.indexOf(3,4); //第二个参数 开始下标的值
    console.log(index);//返回7  检测第下标为4开始(数字5开始) 第一个3出现的位置
    var index=arr.indexOf(10);
    console.log(index);//返回-1  为查找到 返回-1
    //末尾就开始查找lastIndexOf()
    var index=arr.lastIndexOf(3);
    console.log(index);//返回7  
    //indexof() lastIndexOf() 低版本浏览器不兼容













</script>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,839评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,543评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,116评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,371评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,384评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,111评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,416评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,053评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,558评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,007评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,117评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,756评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,324评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,315评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,539评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,578评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,877评论 2 345

推荐阅读更多精彩内容