zoukankan      html  css  js  c++  java
  • 数组

    1、push() 向数组的末尾添加一个或更多元素,并返回新的长度
    例如:

    1 <script type="text/javascript">
    2       var arr = ["George", "John", "Thomas"];
    3       document.write(arr + "<br/>");
    4       document.write(arr.push("James") + "<br/>");
    5       document.write(arr);
    6 </script>

    输出结果:
    George,John,Thomas
    4
    George,John,Thomas,James

    2、pop() 删除并返回数组的最后一个元素
    pop()方法将删除数组的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。
    如果数组已经为空,则pop()不改变数组,并返回undefined值
    例如:

    1 <script type="text/javascript">
    2       var arr = ["George", "John", "Thomas"];
    3       document.write(arr + "<br/>");
    4       document.write(arr.pop() + "<br/>");
    5       document.write(arr);
    6 </script>

    输出结果:
    George,John,Thomas
    Thomas
    George,John

    3、unshift() 向数组的开头添加一个或更多元素,并返回新的长度
    例如:

    1 <script type="text/javascript">
    2       var arr = ["George", "John", "Thomas"];
    3       document.write(arr + "<br/>");
    4       document.write(arr.unshift("James") + "<br/>");
    5       document.write(arr);
    6 </script>

    输出结果:
    George,John,Thomas
    4
    James,George,John,Thomas

    4、shift() 删除并返回数组的第一个元素
    例如:

    1 <script type="text/javascript">
    2       var arr = ["George", "John", "Thomas"];
    3       document.write(arr + "<br/>");
    4       document.write(arr.shift() + "<br/>");
    5       document.write(arr);
    6 </script>

    输出结果:
    George,John,Thomas
    George
    John,Thomas

    5、reverse() 颠倒数组中元素的顺序
    例如:

    1 <script type="text/javascript">
    2       var arr = ["George", "John", "Thomas"];
    3       document.write(arr + "<br/>");
    4       document.write(arr.reverse());
    5 </script>

    输出结果:
    George,John,Thomas
    Thomas,John,George

    6、sort() 对数组的元素进行排序
    对数组的引用。请注意,数组在原数组上进行排序,不生成副本
    该方法默认是按照字符编码(ASCII)的顺序进行排序的
    例如:

    复制代码
    1 <script type="text/javascript">
    2     var arr = new Array(6);
    3     arr[0] = "John";
    4     arr[1] = "George";
    5     arr[2] = "Thomas";
    6     document.write(arr + "<br/>");
    7     document.write(arr.sort());
    8 </script>
    复制代码

    输出结果:
    John,George,Thomas
    George,John,Thomas

    再来看一个例子:

    复制代码
     1 <script type="text/javascript">
     2     var arr = new Array(6);
     3     arr[0] = 10
     4     arr[1] = 5
     5     arr[2] = 40
     6     arr[3] = 25
     7     arr[4] = 1000
     8     arr[5] = 1
     9     document.write(arr + "<br/>");
    10     document.write(arr.sort());
    11 </script>
    复制代码

    输出结果:
    10,5,40,25,1000,1
    1,10,1000,25,40,5

    我们可以看到,并非是按照我们认为的按数字大小排序,如果想按照数字大小排序,则需要改变默认的排序方式,自行指定排序规则。
    如下:

    复制代码
     1 <script type="text/javascript">
     2     var arr = new Array(6);
     3     arr[0] = 10
     4     arr[1] = 5
     5     arr[2] = 40
     6     arr[3] = 25
     7     arr[4] = 1000
     8     arr[5] = 1
     9     document.write(arr + "<br/>");
    10     document.write(arr.sort(function (a, b) {return a - b;}));// 从大到小
    11 </script>
    复制代码

    输出结果:
    10,5,40,25,1000,1
    1,5,10,25,40,1000
    如果想要降序排列呢?
    将排序规则改为:
    function (a, b) {return b - a;}
    就OK了

    7、concat() 连接两个或更多的数组
    该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
    例如:

    1 <script type="text/javascript">
    2        var arr = [1, 2, 3];
    3        var arr1 = [11, 22, 33];
    4        document.write(arr.concat(4, 5, arr1));
    5 </script>

    输出结果:
    1,2,3,4,5,11,22,33

    8、join()
    把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
    例如:

    1 <script type="text/javascript">
    2       var arr = ['item 1', 'item 2', 'item 3'];
    3       var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';
    4 </script>

    list结果:

    '<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>'
    这是迄今为止最快的方法!使用原生代码(如 join()),不管系统内部做了什么,通常比非原生快很多。——James Padolsey, james.padolsey.com

    9、slice(start,end) 从某个已有的数组返回选定的元素
    请注意,该方法并不会修改数组,而是返回一个子数组
    例如:

    1 <script type="text/javascript">
    2       var arr = ["George", "John", "Thomas"];
    3       document.write(arr + "<br/>");
    4       document.write(arr.slice(1) + "<br/>"); // 从第一个元素开始截取到 数组结尾
    5       document.write(arr);
    6 </script>

    输出结果:
    George,John,Thomas
    John,Thomas
    George,John,Thomas

    10、splice() 删除元素,并向数组添加新元素
    splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改
    (1)删除指定范围的数组元素:

    复制代码
     1 <script type="text/javascript">
     2     var arr = new Array(6);
     3    arr[0] = "George"; 
     4    arr[1] = "John";
     5    arr[2] = "Thomas";
     6    arr[3] = "James";
     7    arr[4] = "Adrew";
     8    arr[5] = "Martin";
     9 
    10    document.write(arr + "<br/>");
    11    arr.splice(2, 3); // 删除第三个元素以后的三个数组元素(包含第三个元素)
    12    document.write(arr);
    13 </script>
    复制代码

    输出结果:
    George,John,Thomas,James,Adrew,Martin
    George,John,Martin


    (2)从指定下标开始插入指定元素(元素个数不限):

    复制代码
     1 <script type="text/javascript">
     2    var arr = new Array(6);
     3    arr[0] = "George";
     4    arr[1] = "John";
     5    arr[2] = "Thomas";
     6    arr[3] = "James";
     7    arr[4] = "Adrew";
     8    arr[5] = "Martin";
     9 
    10    document.write(arr + "<br/>");
    11    arr.splice(2, 0, "William","JACK"); // 在第三个元素之前插入"William","JACK"
    12    document.write(arr);
    13 </script>
    复制代码

    输出结果:
    George,John,Thomas,James,Adrew,Martin
    George,John,William,JACK,Thomas,James,Adrew,Martin


    (3)删除指定范围的数组元素,并用指定元素替换(元素个数不限):

    复制代码
     1 <script type="text/javascript">
     2    var arr = new Array(6);
     3    arr[0] = "George";
     4    arr[1] = "John";
     5    arr[2] = "Thomas";
     6    arr[3] = "James";
     7    arr[4] = "Adrew";
     8    arr[5] = "Martin";
     9 
    10    document.write(arr + "<br/>");
    11    arr.splice(2,3,"William","JACK"); // 删除第三个元素以后的三个数组元素(包含第三个元素),并用"William","JACK"进行替换
    12 document.write(arr);
    13 </script>
    复制代码

    输出结果:
    George,John,Thomas,James,Adrew,Martin
    George,John,William,JACK,Martin

    以下为最新补充(2017-07-14):

    11,查找数据元素位置的方法
    indexOf和lastIndexOf接受两个参数:要查找的项和表示查找起点位置的索引。

    indexOf: 从前往后查找。例如:

    var arr = [10, 11, 12, 13, 14, 15, 12, 18];
    console.log(arr.indexOf(12)); // 2
    console.log(arr.indexOf(12, 3)); // 6

    lastIndexOf: 从后往前查找。例如:

    var arr = [10, 11, 12, 13, 14, 15, 12, 18];
    console.log(arr.lastIndexOf(12)); // 6
    console.log(arr.lastIndexOf(12, 2)); // 2


    12,迭代方法
    ECMAScript为数据定义了五个迭代方法:
    every(): 数组的每一项都满足给定条件则返回true。例如:

    var arr = [1,2,3,4,5];
    var everyResult = arr.every(function(item, index, array) {
    return item > 2;
    });
    console.log(everyResult); // false,由于不是每一项都满足(item > 2)

    some(): 数组中只需有一项满足给定条件则返回true。例如:

    var arr = [1,2,3,4,5];
    var everyResult = arr.some(function(item, index, array) {
    return item > 2;
    });
    console.log(everyResult); // true, 由于至少有一项满足条件(item > 2)

    filter(): 返回所有满足给定条件的数据项所组成的新数组。例如:

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

    map():对数组的每一项应用给定条件,返回新的数组。例如:

    var arr = [1,2,3,4,5];
    var everyResult = arr.map(function(item, index, array) {
    return item * 2;
    });
    console.log(everyResult); // [2, 4, 6, 8, 10]
    console.log(arr); // [1,2,3,4,5]

    forEach(): 数组遍历,与for循环一样。例如:

    var arr = [1,2,3,4,5];
    arr.forEach(function(item, index, array) {
    // 执行某些操作
    });

    13,归并方法
    reduce()和reduceRight(), 这两个方法只是遍历方向不同。

    var arr = [1,2,3,4,5];
    var sum = arr.reduce(function(prev, cur, index, array){
    return prev + cur;
    });
    console.log(sum); // 15

    这个函数返回的任何值都会作为第一个参数传给下一项。

  • 相关阅读:
    PHP基础学习笔记(一)
    安装wampserver之后,浏览器中输入localhost页面显示IIS7解决办法
    HTML5常识总结(一)
    AngularJs中的服务
    AngularJs中的directives(指令part1)
    Happy Number——LeetCode
    Binary Tree Zigzag Level Order Traversal——LeetCode
    Construct Binary Tree from Preorder and Inorder Traversal——LeetCode
    Construct Binary Tree from Inorder and Postorder Traversal——LeetCode
    Convert Sorted Array to Binary Search Tree——LeetCode
  • 原文地址:https://www.cnblogs.com/diyidaixiaowang/p/10216095.html
Copyright © 2011-2022 走看看