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

    • var arr=[];   传递一个参数的话,若是数值则是项数,其他类型则是一项的值;
    • isArray()判断是否数组;
    • 数组转字符串:
      • 调用数组的toLocaleString(),toString(),valueOf()返回的是以逗号相隔的每一项的字符串形式,而join()则可以不用逗号分隔,join()接受的唯一一个参数就是分隔符;
    • 添加或移除数组项:
      • 动态地为数组末尾添加项数, color[color.length]=‘red';
      • 数组栈方法(Last-In-First-Out)
        • 栈的中项数的变化只发生在顶部,push()推入,pop()弹出,移除最后一项的同时返回最后一项;
      • 队列方法
        • push() , shift()移除并返回的是第一项第一项,unshift()是添加第一项;
    • 重新排序方法:
      • reverse()
        • 简单粗暴,反转数组项顺序      [1,2,3].reverse()   // [3,2,1]
      • sort()
        • default是升序排列数组,原理是调用数组项每一项的toString(),将数组项转换成字符串再比较它们。如:    [0,1,5,10,15].sort()    //[0,1,10,15,5]
        • sort()函数接受一个比较函数作为参数,排序的时候根据比较函数返回的值进行排序。而比较函数呢,接受两个进行比较的数据,当比较函数返回负值时,则第一个参数排在第二个参数前面,不用换位置;当比较函数返回0是,两个参数相等;当比较函数返回正数时,第一个函数应排在第二个参数后面,换位置;如果想要降序排列,设置相反的返回值即可;
     
    function compare(value1, value2){
       
    if (value1< value2){
           
    return - 1 // 升序,负值不用交换
       
    } else if(value1> value2){
           
    return 1;
        }
    else {
           
    return 0;
        }
    }
     
          • 当比较函数的两个参数是数值,或者是valueOf()返回数值的对象时,可以直接return  value1-value2,这样就直接根据value1-value2的结果决定要不要交换顺序;降序则用value2-value1
      • 操作方法
        • concat() ,copy一份数组副本同时为该 新的数组 添加项;就不像栈方法、队列方法是在原数组上操作;
        • slice(),返回子数组;slice(2,5)返回数组index为2-4的子数组;slice(3)返回从index为3到结束的子数组;
        • splice() 强大的方法,用于处理数组中部的项
          • 删除
            • splice(2,3);  从index为2处开始删除,共删除三项;返回被删除的子数组[index2,index3,index4],原数组改变;
          • 插入/替换
            • splice(2, 0, 'red', 'green');  在index为2处,不删除任何项,插入'red','green ; 相当于让index2=' red ' ;  index3=' green ' ;
            • splice(2, 3, 'red', 'green');  从index为2处开始,删除原来的3项并替换为'red','green;相当于index2='red' ; index3='green' ;并且数组length减少了1(替换项比删除项少了一项)
      • 位置方法
        • indexOf();顺序查找,返回位置。无结果返回-1,采用全等判断是否相等
        • lastIndexOf() 逆序 查找,返回位置。无结果返回-1,采用全等判断是否相等
      • 迭代方法
        • forEach() 没有返回值,只是让数组每一项都执行某个函数;forEach(function(){…………});
        • some() 数组每一项都执行某个函数,如果该函数对任一项返回的是true,则该方法返回true;用于检测是否含有符合条件的数组项;
        • every()数组每一项都执行某个函数,如果该函数对每一项返回的是true,则该方法返回true;用于检测是否数组项是否全部符合条件;
        • filter() 数组每一项都执行某个函数,返回该函数返回为true的项所组成的子数组;用于过滤掉不符合条件的函数;
        • map() 数组每一项都执行某个函数,返回执行该函数后返回的结果组成的新数组;用于创建和原数组一一对应的新数组;
        • 传入这些方法中函数接受三个参数:数组项 item,数组项的位置index,数组本身array
        • 以上方法都对原数组无影响;
      • 缩小方法
        • reduce() 接受一个函数,该函数接受四个参数reduce(function( pre , cur , index , array){…………}) ,函数从数组的第二项开始执行,数组第一项 = pre ,数组的第二项即当前执行到的那一项= cur;然后第二次执行函数,用上一次函数返回的结果作为pre,数组的第三项作为cur,依次往后类推执行
        • reduceRight() 跟reduce()原理一直,只是从数组倒数开始执行;
  • 相关阅读:
    10-12
    8-10
    5.2-5.3
    四则运算 测试与封装
    第5-7章
    汉堡包
    1-5章
    实验二
    实验一
    Controller方法是如何与请求匹配上的及参数如何填充的
  • 原文地址:https://www.cnblogs.com/lazychen/p/5418966.html
Copyright © 2011-2022 走看看