• 数组


    会改变原数组的方法

    reverse,splice,push,pop,unshift,shift,sort

    reverse

    //倒序
    var b = [1, 2, 3, 4];
    b.reverse();//[4, 3, 2, 1]

    splice

    剪接,删改通用方法,会修改数组.从起始位置开始删除几个,并插入数据。返回删除的数组。

    //e变为被修改后的数组
    var e = [1, 2, 3, 4, 5, 6, 7];
    e.splice(2, 0);//[]
    e.splice(2, 3);//[3,4,5];e=[1,2,6,7]
    e.splice(2, 3, [8, 9]);//[3,4,5];

    push,pop

    //添加和删除最后一位,返回值都是添加或者删除的那个
    var q=[1,2];
    q.push(3);
    q.pop();

    unshift,shift

    //添加和删除第一位,返回值都是添加或者删除的那个
    var q=[1,2];
    q.unshift(3);
    q.shift();
     

    sort

     
    //sort不传参,默认转成字符串比较大小,默认升序
    var t=[1,4,3];
    t.sort(compare);//返回值是t,直接将函数传入。结果【1,3,4】
    function compare(val1,val2)
    {
      //升序
      if(val1<val2)
      {
        return -1;//-1,表示不换位置,即小的还是在前面,为1表示要换位置
      }
      if(val1>val2)
      {
        return 1;
      }
      if(val1==val2)
      {
        return 0;
      }
    }

    不会改变数组的方法

    join,concat,slice

    join

    //按一定形式连接,返回一个字符串.不改变原数组。与str.splite相反(分割成数组)
    a.join();//"1,2,3,4",为空默认用逗号隔开
    a.join(" ");//元素之间通过空格相连:"1 2 3 4"
    a.join("");//元素之间无连接:"1234"

    concat

    //合并多个数组:concat。创建新数组。里面有二维数组的话,新增元素是个数组
    var c = [1, 2, 3, 4];
    c.concat(5, 6);//[1, 2, 3, 4, 5, 6]
    c.concat([5, 6], [7, 8]);//[1, 2, 3, 4, 5, 6, 7, 8]
    c.concat([5, 6], [[7, 8]]);//[1, 2, 3, 4, 5, 6, Array[2]]

    slice

     
    // 切下:slice。含头不含尾.从0开始算。不会修改原数组。有起始位置的都包含这个起始位置的值
    var d = [1, 2, 3, 4, 5, 6];
    d.slice(2, 4);//3,4
    //要是参数中有负数则用数组长度加负数来确定这个参数。如果结束位置小于起始位置,则返回空数组。字符串中,参数为负,则从末尾开始找直到最后

    函数作为参数的数组方法

     map,forEach,filter,reduce,some和every

     map

    //map方法:将数组元素当做参数,返回一个新数组
    var f = [1, 2, 3];
    var g = f.map(function (x)
    {
        return x * x;
    });
    //g=[1,4,9].map()的函数应该有返回。

    forEach

    //forEach方法。例子:元素自加1,这个方法没有返回值
    var h = [1, 2, 3, 4];
    h.forEach(function (v, i, a)//v值,i索引,a数组本身
    {
        a[i] = v + 1;
    });

    filter

     
    //过滤:filter。通过里面的函数将符合要求的元素放进一个新数组
    var i=[1,2,3,4];
    i.filter(function(x){return x<3;});//[1,2]

    reduce

    //减少缩小:reduce。组合数组的元素并返回一个结果值。从左开始遍历。reduceRight()倒着遍历
    var j=[1,2,3,4];
    var k=j.reduce(function(x,y){return x+y;},0);//1+2=3+3=6+4=10;第二参数0(可选)是给k的初始值;
    console.log(k);//10

    some和every

     
    //some和every,每一项都为true,则返回true
    var num=[1,2,3,4]
    var everyResult=num.every(function (item,index,array){
         return (item>2);
    })
    alert(everyResult)//false

    与字符串都有的方法

    indexOf和lastIndexOf,slice

    indexOf(startvar,endindex)
    返回参数1首次出现的索引,从头或者从参数2指定的位置开始检索。
    lastIndexOf(startvar ,endindex),
    返回参数1最后出现的位置。从后往前检索,参数2指定从后往前开始检索的索引。
    以上两个方法,对大小写敏感。
    如果要检索的字符串值没有出现,则该方法返回 -1。可用于判断字符串里有没有某个字符。
    参数2取值是 0 到 stringObject.length - 1。
    省略参数2,则默认从第一个字符或者最后一个字符开始检索。
    这两个方法可用于也可用于数组。
     

    数组长度

    var d=[1,2,]
    长度为2.
    var e=[1,2,,3]
    长度为4,中间缺少的值为undefined。
     

    检测是否是数组

    方法1:value instanceof Array。但是要是是多个执行环境,这个Array就是不同环境的引用类型,属于不同的构造函数。比较有问题
     
    方法2:Array.isArray(value),但是不是所有浏览器都实现了。在22.1.1节看准确检测方法。
     

    类数组调用数组类的方法

    通过call
     

  • 相关阅读:
    A survey of best practices for RNA-seq data analysis RNA-seq数据分析指南
    DART: a fast and accurate RNA-seq mapper with a partitioning strategy DART:使用分区策略的快速准确的RNA-seq映射器
    中科院生物信息学题目整理
    生物信息学题目整理: 陈润生
    第六章 Windows应用程序对键盘与鼠标的响应 P121 6-8
    第七章 资源在Windows编程中的应用 P157 7-8
    第四章 Windows的图形设备接口及Windows绘图 P83 4-6
    Android Fragment 你应该知道的一切
    Android Fragment 真正的完全解析(下)
    Android Fragment 真正的完全解析(上)
  • 原文地址:https://www.cnblogs.com/yaoyao-sun/p/10388370.html
Copyright © 2020-2023  润新知