第一页 数组学习

1、一维数组

  (1) var numbers = new Array();    (2)var numbers = new Array(7);  (3) var numbers =  new Array(1,2,3,4);

  var numbers = [0,1,2,3,4,5,6,7,8,9];   

  添加数组的结尾:     numbers[numbers.length] = 10;    (或者) numbers.push(11,12,13);         

  将数值添加到数组的首端: numbers.unshift(-1,-2)
  删除最后一个:      numbers.pop();    

  删除首端元素:      numbers.shift();

  删除索引为2的位置开始的2个元素:    numbers.splice(2, 2)    

  splice方法接收的第一个参数,表示想要删除或插入的元素的索引值。第二个参数是删除
元素的个数。第三个参数往后,就是要添
加到数组里的值;例如: numbers.splice(5,0,2,3,4);这个就表示索引5的位置开始,删除0个元素,然后在其后面插入2,3,4三个元素

     * 在js中数组是没有长度限制的,可以无限添加,但是在C和Java中定义数组的时候就要先定义数组的长度。
2、二维多维数组

       //二维数组
        var array2 = [];
        for (var i = 0; i < 4; i++) {
            array2[i] = [];
            for (var j = 0; j < 4; j++) {
                array2[i][j] = i + j;
            }
        }
        console.log(array2);
        //三维数组
        var matrix3x3x3 = [];
        for (var i = 0; i < 3; i++) {
            matrix3x3x3[i] = [];
            for (var j = 0; j < 3; j++) {
                matrix3x3x3[i][j] = [];
                for (var z = 0; z < 3; z++) {
                    matrix3x3x3[i][j][z] = i + j + z;
                }
            }
        }
        console.log(matrix3x3x3);

3、JavaScript 的数组方法参考
concat   连接2个或更多数组,并返回结果
every   对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
filter   对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组
forEach   对数组中的每一项运行给定函数。这个方法没有返回值
join   将所有的数组元素连接成一个字符串
indexOf   返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1
lastIndexOf   返回在数组中搜索到的与给定参数相等的元素的索引里最大的值
map   对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
reverse   颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在
的第一个
slice   传入索引值,将数组里对应索引范围内的元素作为新数组返回
some   对数组中的每一项运行给定函数,如果任一项返回true,则返回true
sort   按照字母顺序对数组排序,支持传入指定排序方法的函数作为参数
toString   将数组作为字符串返回
valueOf toString类似,将数组作为字符串返回

      //  数组合并 concat
        var zero = 0;
        var positiveNumbers = [1, 2, 3];
        var negativeNumbers = [-3, -2, -1];
        var numbers = negativeNumbers.concat(positiveNumbers);
        console.log(numbers)
   //every
        var isEven = function (x) {
            // 如果x是2的倍数,就返回true
         //   console.log(x);
            return (x % 2 == 0) ? true : false;
            // 也可以写成return (x % 2 == 0) ? true : false
        };
        var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
        console.log(numbers.filter(isEven))
        //排序
        var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
         numbers.sort();
        console.log(numbers)//结果(15) [1, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 9]
     //sort方法在对数组做排序时,把元素默认成字符串进行相 互比较。
     
        //排序
        var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
      //  numbers.sort();
        numbers.sort(function (a, b) {
            return a - b;
        });
        function compare(a, b) {
            if (a < b) {
                return -1;
            }
            if (a > b) {
                return 1;
            }
            // a必须等于
            return 0;
        }
        numbers.sort(compare);
        console.log(numbers)//结果(15)[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
   
  //搜索
        var numbers = [1, 2, 3, 4, 5, 6, 3,5,3,5,87,3];
        console.log(numbers.lastIndexOf(33))//从数组尾端开始查找匹配的  返回与其相同的值的索引  没有匹配到返回-1
        console.log(numbers.indexOf(3))//从数组首端开始查找匹配的  返回与其相同的值的索引  没有匹配到返回-1

 




 

 

 

  

posted @ 2018-07-18 18:13  前行。。。  阅读(160)  评论(0编辑  收藏  举报