数组基础

 附上一张速记表格:

<script>  // 数组

  
  // 数组的属性length
  var arr=[1,2,3,4,5,6];

  // 获取数组的长度
  console.log(arr.length);            //6

  // 设置数组的长度
  arr.length = 3;
  console.log(arr.length);            //3
  console.log(arr);                            //[1, 2, 3]

  // 清空数组
  arr.length = 0;

  // 数组的基本操作
  // 1:[添加和删除元素]
  // 添加:push(元素),从尾部添加        [返回添加后的length, 修改原数组]
  //             unshift(元素),从头部添加 [返回添加后的length, 修改原数组]
  // 删除:pop(), 从尾部删除                    [返回被删除的元素]
  //             shift(), 从头部删除                [返回被删除的元素]

  var arr=[1,2,3,4];
  var arr1=arr.push(5);
  console.log(arr1===arr.length);
  console.log(arr);

  var arr2=arr.unshift(0);
  console.log(arr2===arr.length);
  console.log(arr);

  var arr3=arr.pop();
  console.log(arr3===arr.length);
  console.log(arr);

  var arr4=arr.shift();
  console.log(arr4===arr.length);
  console.log(arr);

  // 2:[splice方法(修改原数组),从数组中间添加、删除元素]

  var arr=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
  // 删除: splice(起点, 长度)
  arr.splice(2, 3);        
  console.log(arr);                    //1, 2, 6, 7, 8, 9, 10
  // 替换: splice(起点, 长度(>0), 元素...)
  arr.splice(2, 4, 'a', 'b', 'c');
  console.log(arr);                    //1, 2, 'a', 'b', 'c', 10
  // 插入: splice(起点, 0, 元素...)
  arr.splice(1, 0, 'A', 'B');
  console.log(arr);                    //1, "A", "B", 2, "a", "b", "c", 10

  // 3, concat()数组与数组拼接

  var arrA=[1, 2, 3];
  var arrB=[4, 5, 6];
  console.log(arrA.concat(arrB));            //[1, 2, 3, 4, 5, 6]

  // 4, join()分隔数组元素[返回新数组]

  var arr = [1, "A", "B", 2, "a", "b", "c", 10];
  console.log(arr.join('^'));        //1^A^B^2^a^b^c^10
  console.log(arr);                            //[1, "A", "B", 2, "a", "b", "c", 10]

  // 5, 排序数组元素

  // 排序字符串[缺省值]
  var arr=['float', 'width', 'alpha', 'zoom', 'left'];
  console.log(arr.sort());            //["alpha", "float", "left", "width", "zoom"]

  // 排序数字[sort(比较函数)]
  var arr=[12, 34, 9, 11, 89, 10, 1];
  console.log(arr.sort());            //[1, 10, 11, 12, 34, 89, 9]
  // 1)if判断元素,如果前一个元素小于后一个元素则返回负数, 如果前一个元素大于后一个元素则返回正数, 否则相等则返回0
  // arr.sort(function (n1, n2){
  //     if(n1 < n2){
  //         return -1;                //只要返回的是负数即可
  //     }else if(n1 > n2){
  //         return 1;                    //只要返回的是正数即可
  //     }else{
  //         return 0;
  //     }
  // });
  // console.log(arr);            //[1, 9, 10, 11, 12, 34, 89]

  // 2)更简便的比较函数[比较的结果只要返回正负数即可, -1和1并不是唯一]

  arr.sort(function (n1, n2){
      return n1-n2;
  });
  console.log(arr);            //[1, 9, 10, 11, 12, 34, 89]

  // 5, 反转数组元素

  var arr=[1, 9, 10, 11, 12, 34, 89];
  console.log(arr.reverse());        //[89, 34, 12, 11, 10, 9, 1]
    // 6, for-in遍历数组元素

    var arr=[1,2,3,'A','B','C'];
    for(var key in arr){
        console.log(arr[key]);
    }
    // 7, slice(起点,终点(不包括该元素))截取(复制)数组元素, 该方法不影响原数组
    // PS: 注意第二个参数是指从数组索引为0的位置开始, 与splice(起点, 长度)是不一样的
var array = ["Cisio", "Borland", "Apple", "Dell", "Lenovo", "Acer", "Hp"]; console.log(array.slice(1, 3)); //["Borland", "Apple", "Dell"] console.log(array);         //["Cisio", "Borland", "Apple", "Dell", "Lenovo", "Acer", "Hp"]

</script>
原文地址:https://www.cnblogs.com/jasontoyell/p/4743725.html