Skip to content

Latest commit

 

History

History
166 lines (131 loc) · 5.57 KB

09 数组的操作.md

File metadata and controls

166 lines (131 loc) · 5.57 KB

数组的操作

PaddyWang

  •   push() 
    
    • 插入后数组长度 = 数组.push(元素);
    • 返回数组长度;插入一个元素到数组最后面(改变原数组)
  •   unshift()
    
    • 插入后数组长度 = 数组.unshift(元素);
    • 返回数组长度;插入一个元素到数组最前面(改变原数组)
  var arr = [ 1, 2, 3, 4];
  var newArrLen1 = arr.push(3);
  console.log(newArrLen1); // => 5
  console.log(arr);  // => [ 1, 2, 3, 4, 3]
  
  var newArrLen2 = arr.unshift(5);
  console.log(newArrLen2);  // => 6
  console.log(arr);  // => [5, 1, 2, 3, 4, 3]

  •  pop()
    
    • 删除元素 = 数组.pop();
    • 返回被删除的元素;删除数组最后一个元素(改变原数组)
  •   shift()
    
    • 删除元素 = 数组.shift();
    • 返回被删除的元素;删除数组第一个元素(改变原数组)
  var arr = [1, 2, 3, 4, 5];
  var char1 = arr.pop();
  console.log(char1);  // => 5
  console.log(arr);  // => [1, 2, 3, 4]
  
  var char2 = arr.shift();
  console.log(char2);  // => 1
  console.log(arr);  // => [2, 3, 4]

  •  concat()
    
    • 连接后的新数组 = 数组1.concat(数组2);
    • 返回一个新数组;将数组2添加到数组1后面(原数组不变)
  var arr1 = [1, 2, 3];
  var arr2 = [6, 7, 8];
  var newArr = arr1.concat(arr2);
  console.log(arr1);  // => [1, 2, 3]
  console.log(arr2);  // => [6, 7, 8]
  console.log(newArr);  // => [1, 2, 3, 6, 7, 8]

  •   join()
    
    • 字符串 = 数组.join(分隔符);
    • 返回一个由分隔符分隔开的字符串;(不改变原数组)
  •  split()
    
    • 数组 = 字符串.split(分隔符);
    • 返回一个数组(不改变原字符串)
  var arr = [1, 2, 3, 4, 5];
  var str = arr.join('-');
  console.log(arr);  // => [1, 2, 3, 4, 5]
  console.log(str);  // => 1-2-3-4-5
  
  var arr1 = str.split('-');
  console.log(arr1);  // => ["1", "2", "3", "4", "5"]
  var arr2 = str.split();
  console.log(arr2);  // => ["1-2-3-4-5"]
  var arr3 = str.split('');
  console.log(arr3);  // => ["1", "-", "2", "-", "3", "-", "4", "-", "5"]

  • length
    • 数组长度 = 数组.length;
    • 输出数组的长度
  var arr = [1, 2, 3, 4, 5];
  var arrLen = arr.length;
  console.log(arr);  // => [1, 2, 3, 4, 5]
  console.log(arrLen);  // => 5

  • reverse()

    • 数组.reverse();
    • 降序排列 (改变原数组)
  • sort()

    • 数组.sort();
    • 升序排列 (改变原数组)
    • sort() 会调用每个数组项的toString转型方法,然后再比较转换后的字符串
  var arr1 = [1, 9, 3, 10, 50];
  var newArr1 = arr1.reverse();
  console.log(arr1);  // => [50, 10, 3, 9, 1]
  console.log(newArr1);  // => [50, 10, 3, 9, 1]
  
  var arr2 = [1, 9, 3, 10, 50];
  var newArr2 = arr2.sort();
  console.log(arr2);  // => [1, 10, 3, 50, 9]
  console.log(newArr2);  // => [1, 10, 3, 50, 9]

imgs/Array.png

新增

    var arr = [1, 2, 3, 4, 5, 6];
    var arr2 = [1, 2, 3, 4, 5, 6];

    // 增
    console.log(arr, arr.push('haha'));  // => 返回添加后数组的长度  改变原数组
    console.log(arr, arr.unshift('xixi'));
    console.log(arr, arr2, arr.concat(arr2));  // 数组的拼接  不改变原数组

    // 删
    console.log(arr, arr.pop());  // => 返回删除的元素  改变原数组
    console.log([].pop());  // => undefined  当为空数组时返回 undefined
    console.log(arr, arr.shift());

    // 查
    console.log(arr.indexOf(3));  // => 2  返回指定元素在数组中的位置
    console.log(arr.indexOf(7));  // => -1  不存在时  返回 -1

    // 改  splice(index, howmany, element1,....., elementX)
    // index : 必需。规定从何处添加/删除元素。
    // howmany : 必需。规定应该删除多少元素。必须是数字,但可以是 "0"。
                // 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
    // element1 : 可选。可向数组添加的元素

    console.log(arr, arr.splice(4, 1));  // 当为两个参数时  进行移除  返回被移除的元素数组  改变原数组
    console.log(arr2, arr2.slice(2, 3));  // 同 string.slice  不会改变原数组
    console.log(arr, arr.splice(3, 2));  // => [1, 2, 3] [4, 6]
    // 添加  第二个参数为 0 时代表删除 0 个元素,用后面的元素代替
    // 当第一个参数大于数组长度时 会直接在数组之后添加  不会出现 空
    console.log(arr, arr.splice(5, 0, 1, 2, 3));  // => [1, 2, 3, 1, 2, 3] []

    console.log(arr, arr.join());  // 默认按照逗号分隔  不改变原数组

    console.log('ab-djf-sjdkf-jdj'.split('-'));

    // 反转  改变原数组
    console.log(arr, '-----反转-----');
    console.log( arr.reverse());  // 数组的反转

    function fn(a, b){
        return a - b;
    }
    function fn2(a, b){
        return b - a;
    }

    // 排序   改变原数组
    console.log(arr = arr.concat([10, 11, 9]), '-----排序-----');
    console.log(arr.sort());  // 按照 字符编码进行排序  默认情况下 sort 会调用 toString 方法进行比较
    console.log(arr, '-----升序-----');
    console.log(arr.sort(fn));  // 升序  传入一个升序函数即可

    console.log(arr, '-----降序-----');
    console.log(arr.sort(fn2));