JS数组练习可能用到的方法(待更新)

来源:互联网 发布:mac dns自动获取 编辑:程序博客网 时间:2024/05/20 23:35
  1. 前言
  2. 熟悉数组各种方法时,要注意该方法是否会修改原数组,以及它的返回值。
  3. 在chrome控制台,console.log(Object.getOwnPropertyNames(Array.prototype)),打印array的所有属性,会输出:
  4. "length", "constructor", 

  5. "concat", "pop", "push", "shift", "unshift", "slice", "splice", "indexOf", "join", "reverse",(已经列举的方法

  6. "includes", "keys", "entries", "forEach", "filter", "map", "every", "some", "reduce", "reduceRight", "toString", "toLocaleString", "sort", "lastIndexOf", "copyWithin", "find", "findIndex", "fill"


  7. 其中,length、constructor属于属性,而其他的则是方法。
  8. length--返回数组内元素的个数
  9. constructor--返回对创建此对象的数组函数的引用,即返回这个构造函数,创建构造实例的构造函数。

  10. 下面简单的介绍一下各自的用途以及实例:

  11. 1.concat()
  12.      concat()用于连接两个或多个数组,不会改变现有数组,仅仅返回被连接数组的一个副本
  13.      arr.concat(arg1,arg2.....),将参数添加到arr数组内,若参数为数组,则添加的是数组中的元素,而不是数组本身。
  14.      eg:
  15.      var a = [1,2,3];
  16.      document.write(a.concat(4,5,6));    //输出为:1,2,3,4,5,6
  17.      var a = [1,2,3];
  18.      var b = [4,5,6];
  19.      document.write(a.concat(b));    //输出为:1,2,3,4,5,6
  20. 2.join()
  21. join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。
  22. join(arg1),可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
  23. eg:
  24. var arr = new Array(3)
    arr[0] = "1"
    arr[1] = "2"
    arr[2] = "3"
    document.write(arr.join()) //输出1,2,3

  25. 3.slice()
  26. slice() 方法可从已有的数组中返回选定的元素
  27.      slice(start,end)
  28. 参数start必需,start规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素开始,-2 指倒数第二个元素开始,以此类推。
  29. 参数end可选,end规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
  30.      返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。不会修改数组,只是返回一个子数组。
  31.      eg:
  32.      var arr = new Array(3)
         arr[0] = "1"
         arr[1] = "3"
         arr[2] = "5"
         document.write(arr + "<br />")    //输出1,3,5
         document.write(arr.slice(1) + "<br />")    //输出3,5
         document.write(arr)    //1,3,5
  33. document.write(arr.slice(0)+ "<br />")//输出1,3,5

  34.      var arr = new Array(6)
         arr[0] = "1"
         arr[1] = "3"
         arr[2] = "5"
         arr[3] = "7"
         arr[4] = "9"
         arr[5] = "11"
         document.write(arr + "<br />")     //输出1,3,5,7,9,11
         document.write(arr.slice(2,4) + "<br />")     //输出5,7,9
         document.write(arr)     //输出1,3,5,7,9,11

  35. 4.splice()
  36.      splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目直接修改原数组
  37.      splice(index,howmany,item1,item2......)。index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 item1, ..., itemX 可选。向数组添加的新项目。 
  38.      splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
    如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。
  39. eg:
  40. var arr = new Array(5)
    arr[0] = "1"
    arr[1] = "3"
    arr[2] = "5"
    arr[3] = "7"
    arr[4] = "9"
    document.write(arr + "<br />") //输出1,3,5,7,9
    arr.splice(2,1,"11")
    document.write(arr) //输出1,3,11,7,9

  41. 5.pop()
  42.      pop() 方法用于删除并返回数组的最后一个元素。直接修改数组。
  43.      pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined值。
  44. eg:
  45. var arr = new Array(3)
    arr[0] = "1"
    arr[1] = "3"
    arr[2] = "5"
    document.write(arr + "<br />"); //输出1,3,5
    document.write(arr.pop()+ "<br />"); //输出5
    document.write(arr); //输出1,3

  46. 6.shift()
  47.      shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
  48. 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。
  49.      eg:
  50.      var arr = new Array(3)
         arr[0] = "1"
         arr[1] = "3"
         arr[2] = "5"
         document.write(arr + "<br />")     //输出1,3,5
         document.write(arr.shift() + "<br />")      //输出1
         document.write(arr)     //输出3,5

  51. 7.push()
  52.      push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。直接修改原数组。返回值为添加新元素后的新长度。
  53.      push(arg1,arg2......);必须要有一个参数。
  54.      eg:
  55.      var arr = new Array(3)
         arr[0] = "1"
         arr[1] = "3"
         arr[2] = "5"
         document.write(arr + "<br />");     //输出1,3,5
         document.write(arr.push("7") + "<br />");     //输出4,数组长度
         document.write(arr);     //输出1,3,5,7

  56. 8.unshift()
  57.      unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
  58.      unshift(arg1,arg2.....),必须要有一个参数。
  59. unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。
    请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组
    该方法不能再ie上正确工作。
  60.      eg:
  61.      var arr = new Array()
    arr[0] = "1"
    arr[1] = "3"
    arr[2] = "5"
    document.write(arr + "<br />"); //输出1,3,5
    document.write(arr.unshift("7") + "<br />");//输出4
    document.write(arr); //输出7,1,3,5

  62. 9.reverse()
  63.      reverse() 方法用于颠倒数组中元素的顺序。该方法会改变原来的数组,而不会创建新的数组。
  64.      eg:
  65.      var arr = new Array(3)
         arr[0] = "1"
         arr[1] = "3"
         arr[2] = "5"
         document.write(arr + "<br />")     //输出1,3,5
         document.write(arr.reverse())     //输出5,3,1

  66. 10.indexOf()
  67.      indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。
  68.      提示和注释
         注释:indexOf() 方法对大小写敏感!
         注释:如果要检索的字符串值没有出现,则该方法返回 -1。
  69.      eg:
  70.      var str="Hello world!"
  71.      document.write(str.indexOf("Hello") + "<br />");//输出0
         document.write(str.indexOf("World") + "<br />");//输出-1,因为World和world不一样,区分大小写。
         document.write(str.indexOf("world"));//输出6