• Javascript操作数组的几个函数整理


    1、concat()

    array.concat(value1, value2, ..., valueN);  //其中value1、value2等可以数组也可以是字符串、数字等其他类型的数据

    功能:将两个或两个以上个数组的元素抽取出来组合成一个新的数组。

    1 strArr = ['a', 'b', 'c']
    2 numArr = [1,2,3,4,5]
    3 str = 'String'
    4 strArr.concat(numArr, str); => ["a", "b", "c", 1, 2, 3, 4, 5, "String"]

    2、every()

    array.every(callback[element, index, array]),

    功能:将数组中的每一个元素执行一次callback这个回调函数,只有当执行callback时每次都返回true,every函数才返回true,否则返回false

    1 function isBig(element, index, array) {
    2     return (element > 10);
    3 };  //当参数element大于10返回true
    4 [11,22,33,44,55].every(isBig)  => true   //因为每个元素都大于10,所以每次执行isBig函数是都返回true。只要其中有一个元素小于或等于10,则返回false

    3、filter()

    array.filter(callback[element, index, array]);

    功能: 过滤。将数组中的每一个元素各执行一次callback函数,若返回true则该元素留下,否则该元素将被过滤掉。

    1 function isBig(element, index, array) {
    2     return (element > 10);
    3 };  //当参数element大于10返回true
    4 
    5 [11,44,2,7,55,2,19].filter(isBig)  => [11, 44, 55, 19]   //比10小的元素都被过滤掉了

    4、forEach()

    array.forEach(callback[element, index, array]);

    功能: 与ruby语言中的each方法类似,遍历数组中的每个元组,可对每个元素进行各种操作。

    1 var i = 0;
    2 [1, 2, 3, 4, 5].forEach(function(element) { i += element; });  =>  i = 15    

    5、indexOf()

    array.indexOf(searchElement[, fromIndex]);

    功能: 查找某一元素在数组中的位置,返回的是第一个元素的下标号。

    1 arr = [1,2,3,4,3,5,3];
    2 
    3 arr.indexOf(3);  =>  2
    4 arr.indexOf(3, 3); => 4  //第二个参数是指明从第4个元素开始查找,结果略过第三个元素3,找到第5个元素3,所以返回4

    拓展:lastIndexOf()函数与indexOf()函数相似,不同的是它从元素的后面开始查找。

    6、join()

    array.join(separator);、

    功能: 将数组中的所有元素转换为字符串类型并链接起来。

    1 arr = ['One', 'Two', 'Three'];
    2 
    3 arr.join(); => "One,Two,Three"   //默认链接时元素之间用逗号隔开
    4 arr.join('*'); =>  "One*Two*Three"

    7、map()

    array.map(callback[, thisObject]);

    功能: 遍历数组中的每一个元素,每次都返回数据作为新数组的最后一个元素,最终返回结果是一个数组。

    1 [1,2,3,4,5].map(function(e){ return e + 10 });  => [11, 12, 13, 14, 15]

    8、pop()

    array.pop()

    功能: 将数组的最后一个元素删除并返回这个被删除的元素。

    1 arr = [1,2,3,4,5];
    2 arr.pop(); => 5
    3 arr => [1,2,3,4]

    9、push()

    array.push(element1, element2, ... , elementN)

    功能: 将参数插入至数组最后,返回数组的长度。

    1 arr = [1,2,3,4,5];
    2 arr.push(33, 44, 55);  => 8
    3 arr  => [1, 2, 3, 4, 5, 33, 44, 55]

    10、reduce()

    array.reduce(callback[, initialValue])

    用法: callback函数里有四个参数:

      previousValue: 先前值,默认为数组的第一个元素的值,也可自定义为其他值,如下面例子中的10

      currentValue: 当前值,默认从数组的第二个元素开始,如果自定义了先前值,则从第一个元素开始

      index: 数组元素的序号

      array: 当前数组

    功能: 对数组中的元素(从左到右)两两执行callback操作,返回最后一次操作的结果。

    例子: 

    1 [0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
    2     return previousValue + currentValue;
    3 }); => 10
    1 [0,1,2,3,4].reduce(function(previousValue, currentValue, index, array){
    2     return previousValue + currentValue;
    3 }, 10);  => 20   //这里自定义了先前值
     
    11、reduceRight()
    与reduce()相似,区别在于执行的顺序相反
    12、reverse()
    功能: 将原来的数组倒序
    1 [1,2,3,4,5].reverse();  =>  [5,4,3,2,1]
    13、shift()
    功能: 删除数组中的第一个元素并将该元素返回
    1 arr = [1,2,3,4,5];
    2 arr.shift();  => 1;
    3 arr;  =>  [2,3,4,5]
    14、slice()
    array.slice(start,end)
    用法:
    1. start为必需参数,所要选定元素的开头元素的下表
    2. end为可选参数,指选定的内容到该元素为止(所选取内容不包括下标为该参数的元素)
    3. 若参数为负数,则从尾部开始算起(start=-2,说明从数组倒数第二个元素开始选取内容,end也相同) 
    功能:从已有的数组中返回选定的元素
     1 arr = [1,2,3,4,5];
     2 arr.slice(0);
     3 => [1, 2, 3, 4, 5]
     4 arr.slice(0, 1);
     5 => [1]
     6 arr.slice(-2, 5);
     7 => [4, 5]
     8 arr.slice(2,3);
     9 => [3]
    10 arr.slice(0, -2);
    11 => [1, 2, 3] 
    15、some()
    array.some(callback[, thisObject]);
    功能:与every()相似,遍历数组中的每一个元素
    用法:只要存在元素使得callback函数返回true,则some()返回true
    1 function isBigger(element) {
    2     return (element > 5);
    3 };
    4 arr1 = [1,2,3,4,5];
    5 arr2 = [4,5,6];
    6 arr1.some(isBigger);
    7 => false
    8 arr2.some(isBigger);
    9 => true 
    16、unShift()
     array.unshift( element1, ..., elementN );
    功能:将新对象插入到数组的最前,作为新元素,返回新数组的长度
    1 arr = [1,2,3];
    2 => [1, 2, 3]
    3 arr.unshift(5,6,[7,8,9]);
    4 => 6
    5 arr;
    6 => [5, 6, Array[3], 1, 2, 3]
    17、sort()
    array.sort( compareFunction );
    功能:对数组按compareFuction这个函数的排序方法进行排序,返回排序后的新数组
    1 function mySort(a,b){ //返回正数则a和b交换位置,返回0或负数则不交换
    2     return b - a;
    3 }
    4 => undefined
    5 arr = [1,4,2]
    6 => [1, 4, 2]
    7 arr.sort(mySort)
    8 => [4, 2, 1]
    18、splice()
    array.splice(index,howmany,element1,.....,elementX)
    功能:插入、删除或替换数组的元素,如果从数组中删除了元素,则返回的是含有被删除的元素的数组。
    参数:
           index:必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
           howmany必需。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
           element1可选。规定要添加到数组的新元素。从 index 所指的下标处开始插入。
           elementX可选。可向数组添加若干元素。
    说明:splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。
    19、toString()
    array.toString()
    功能:把数组转换为字符串,并返回结果
    说明:当数组用于字符串环境时,JavaScript 会调用这一方法将数组自动转换成字符串。但是在某些情况下,需要显式地调用该方法
    1 var arr = new Array(3);
    2 arr[0] = "George";
    3 arr[1] = "John";
    4 arr[2] = "Thomas";
    5 arr;
    6 => ["George", "John", "Thomas"]
    7 arr.toString();
    8 => "George,John,Thomas"
  • 相关阅读:
    js跨域之window.name跨域解决方案
    html中用IE条件判断
    收集的CSS浏览器兼容问题大全(粘贴过来,会用到的)
    移动网站开发系列(一)
    离散数学归谬法与反证法的比较
    端口未正常关闭解决方法
    nodejs 连接 mysql 出现 Client does not support authentication protocol requested by server; consider upgrading MySQL client
    http规范
    退役后的苦逼高三生活续++
    NOIP2018 游记
  • 原文地址:https://www.cnblogs.com/jing5022/p/3055359.html
Copyright © 2020-2023  润新知