• javascript 数组方法


    数据集合在编程中使用的非常广泛,比如C#中的Collection、List使我们可以存储“一组”数据,并对这组数据进行遍历、删选、排序...等操作,C#中linq给我提供了各种便利的集合操作方法; 同样 javascript数组对象从Array.prototype上继承了很多实用方法;

    模拟二维数组实现九九乘法表

    var table = new Array(10);
    for (var i = 0; i < table.length; i++) {
    	table[i] = new Array(10);
    }
    for (var row = 0; row < table.length; row++) {
    	for (var col = 0; col < table[row].length; col++) {
    		table[row][col] = row * col;
    	}
    }
    // 在控制台查看table的行列关系
    console.table(table);
    // talbe的行列对应的值就是九九乘法表的值 
    // 如 5*7 == table[5][7]
    console.log(table[5][7]);
    

    Array.join(<seperator>)用指定分隔符连接数组的各个元素,返回字符串###

    常用于用数组收集数据后,生成一个逗号分隔的字符串这类操作;和字符串的split操作刚好相反

    var arr = [1,2,3,4]
    arr.join(' ');        //=> "1 2 3 4"
    arr.join('|');        //=> "1|2|3|4"
    console.log(arr);     //=> [1,2,3,4]   //无副作用
    

    副作用 Array.reverse() 颠倒数组元素的顺序, 并返回

    var arr = [1,2,3];
    var b = arr.reverse();
    console.log(b);    //=> [3,2,1]
    console.log(arr);  //=> [3,2,1]  //副作用
    

    副作用 Array.sort([function]) 排序后返回,如果没有传入比较函数 则以字母表的顺序排序(其他类型会先转成字符串), undefined会排到末尾;

    //1. sort();
    var a = ['banana','cherry',undefined,'apple']
    var b = a.sort();
    var s = a.join(', ') // s == "apple, banana, cherry, undefined"
    var y = b.join(', ') // y == "apple, banana, cherry, undefined" 
    
    //2. sort([funtion(a,b)]) 
    // 假设第一个参数应该在第二个参数前面,则返回小于0的数,反之返回大于0的数
    var a=[33, 4, 111, 222];
    a.sort();  //!!! 按照字母表顺序排列 [111, 222 ,33, 4]  
    // 从小到大排列 
    a.sort(function(a, b) {
    	return a - b;
    })
    
    

    Array.conact(array1,array2,...) 连接多个数组元素,返回新数组;不会深层次连接

    var a = [1,2]
    var b = a.concat([3,[4,5]])
    // b ==  [1, 2, 3, [4, 5]]
    // a == [1,2] 无副作用
    

    Array.slice([start],[end]) 返回数组的指定片段

    负数表示从最后一位开始

    start: 开始截取的索引位置(包含);

    end: 结束位置(不包含),不指定表示截取从start到结尾所有元素

    var a = [1,2,3,4,5];
    var b = a.slice(0,3); // [1, 2, 3] 
    b = a.slice(2,-1);    // [3, 4]
    b = a.slice(2);       // [3, 4, 5]
    b = a.slice(-3,-2);   // [3]
    ### b = a.slice(-3,-3);   // []
    

    副作用 Array.splice([start],[count],[replacer]) 删除和插入数组元素的通用方法,返回由被删除元素组成的数组

    var a = [1,2,3,4,5,6];
    var b = a.splice(1,0,'a');   // 返回 []; a: [1,"a",2,3,4,5,6]
    b = a.splice(1,1,['a','b']); // a:  [1,["a","b"],3,4,5,6] 
    a.splice(2); // 返回[3,4,5,6]  a: [1,["a","b"]] 
    
    

    堆栈/队列 操作

    以下四个方法,两两组合可以模拟堆栈的先进后出、队列的先进先出效果
    var a=[];
    //1. Array.push([element],[element],...) 向数组末尾推入新元素
    a.push(1); // a: [1]
    a.push([2,3]); // a: [1,[2,3]]
    
    //2. Array.shift() 返回数组第一位元素
    var b = a.shift(); // b: 1 
    b = a.shift();         // b: [2,3]
    
    //3. Array.unshift([element],[element],...) 在数组开头压入新元素
    a.unshift(4);
    a.unshift([6,7]); // a: [4,[6,7]]
    
    //4. Array.pop(); 弹出数组最后一个元素
    var b = a.pop(); // b: [6,7]
    
    
  • 相关阅读:
    MySQL-事务原理
    MySQL-索引原理
    SQL-查询前N条记录
    Shell-配置libpath环境变量
    PG-Vacuum
    python连接mysql数据库
    Spark SQL 基本操作
    spark-shell 交互式编程
    Scala统计学生成绩
    Scala模拟图形绘制
  • 原文地址:https://www.cnblogs.com/mushishi/p/5875800.html
Copyright © 2020-2023  润新知