zoukankan      html  css  js  c++  java
  • js数组

    创建数组

    字面量方式创建(推荐使用)

    var arr = ['red'.'green', 'blue'];
    

    使用构造函数

    var arr = new Array('red', 'green', 'blue');
    

    数组赋值

    var arr = []
    arr[0] = 'red';
    arr[1] = 'grren';
    arr[2] = 'blue';
    

    数组的基本操作

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    
    </body>
    <script type="text/javascript">
    var arr = ['a', 'b', 'c'];
    var arrPop = arr.pop();// 返回最后一项,同时删除最后一项
    console.log(arrPop); 
    var arrPush = arr.push('d'); //往数组最后一项追加,返回新数组长度
    console.log('push: '+arrPush); //
    var arrShift = arr.shift(); // 删除数组第一个元素,返回数组第一个元素
    console.log('shift:' + arrShift)
    var arrUnshift = arr.unshift('e', 'f', 'd', 'g','g'); //往数组第一个位置插入元素,返回插入的元素
    
    var arrSlice = arr.slice(3,6); // 从0开始,顾头不顾尾,返回数组的一段,不改变原数组
    var arrSlice1 = arr.slice(-4,-1); // 效果同上,
    console.log('数组长度: '+arr.length);
    console.log(arrSlice);
    console.log(arrSlice1);
    console.log('g的位置:'+ arr.indexOf('g'));//从左往右,第一个g的位置
    console.log(arr.lastIndexOf('g')); //从右往左,第一个g的位置
    console.log(arr.indexOf('p'));// 如果没有找到返回-1;
    var newArr = arr.sort(); //对数组进行排序,改变原数组
    var reArr = arr.reverse(); // 对数组进行反转,改变原数组
    var concatArr = arr.concat(['1', '2', '3']); //合并数组,返回新数组,不改变原来的数组
    
    console.log('new: '+ concatArr);
    console.log('arr: '+ arr);
    </script>
    </html>
    
    

    总结:不改变原数组的方法有:concat, slice

    数组的归并方法

    reduce和reduceRight, reduceRight和reduce一样,区别在于从右边开始遍历,方向不同。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    </head>
    <body>
    </body>
    <script type="text/javascript">
    var arr = [1,2,3,4,5];
    // 第一次执行回调函数, prev=1 , cur=2;
    //第二次执行回调函数, prev = 1+2 , cur是数组上的3;
    
    var sum = arr.reduce(function(prev, cur, index,arr){
    return prev+cur;
    });
    console.log(sum); //15
    </script>
    </html>
    

    数组的迭代方法

    every():对数组中的每一项运行给定函数,如果每一项都返回True,则返回True;

    arr = [1,2,3,4,5,6,7]
    everyArr = arr.every(function(item,index,arr){
    return (item> 3); // false
    })
    console.log(everyArr);
    everyArr0 = arr.every(function(item,index,arr){
    return (item> 0); //true
    })
    console.log(everyArr);
    

    some():对数组中的每一项运行给定函数,如果有一项都返回True,则返回True;

    arr = [1,2,3,4,5,6,7]
    someArr = arr.some(function(item,index,arr){
    return (item > 5)
    })
    console.log(someArr) //true
    
    

    filter():对数组中的每一项运行给定函数,返回True项组成的数组;

    arr = [1,2,3,4,5,6,7];
    filterArr = arr.filter(function(item ,index, arr){
    return (item>4)
    })
    console.log(filterArr); // 5,6,7
    

    map():对数组中的每一项运行给定函数,返回函数调用结果组成的数组;

    mapArr = arr.map(function(item,index,arr){
    return (item*2)
    })
    console.log(mapArr); //"2,4,6,8,10,12,14"
    
    

    foreach():对数组中的每一项运行给定函数,没有返回值;

  • 相关阅读:
    Redis面试总结
    文件上传文件的权限lnmp 环境配置,尤其整个项目复制过来
    linux cat /etc/passwd 说明
    php上传文件与图片到七牛的实例详解
    一起谈.NET技术,参数编码 完全解决方案 狼人:
    一起谈.NET技术,在.NET中使用域对象持续模式 狼人:
    一起谈.NET技术,从.NET中委托写法的演变谈开去(中):Lambda表达式及其优势 狼人:
    一起谈.NET技术,从扩展方法到流畅的程序体验(一) 狼人:
    一起谈.NET技术,构建高性能ASP.NET站点之一 剖析页面的处理过程(前端) 狼人:
    一起谈.NET技术,ASP.NET MVC 2 验证消息本地化策略扩展 狼人:
  • 原文地址:https://www.cnblogs.com/Jason-lin/p/9119442.html
Copyright © 2011-2022 走看看