js:数据结构笔记1---数组

JS中数组:

  • 只是一种特殊的对象,比其他语言中效率低;
  • 属性是用来表示偏移量的索引;在JS中,数字索引在内部被转化为字符串类型(这也是为什么写对象属性的时候可以不叫引号),因为对象中的属性必须是字符串类型;

操作:

  • 判断:isArray();
  • 复制:
    • 浅复制:
      var arr1 = arr2;
    • 深复制:
      function copy(arr1) {
      
         var arr2 = [];
      
         for(var i = 0; i < arr1.length; i++) {
      
            arr2[i] = arr1[i];
      
         }
      
         return arr2;
      
      }
      
      
  • 查找: indexOf/lastIndexOf;
  • 由已有的数组创建:concat()/splice();
  • 添加:push()/unshift()/splice()/arr[arr.length];
  • 删除:pop()/shift()/splice();
  • 排序:reverse()/sort()[字典顺序排序];
    数字正序排序:
    
    function compare(num1,num2) {
    
       return num1 - num2;
    
    };
    
    字符正序排序:
    
    function compare(str1,str2) {
    
       if(str1 > str2) return 1;
    
       else return -1;
    
    }
    
    字典顺序:0-9A-Za-z
  • 与字符串:splite();  join()/toString();
  • 迭代:
    • 不产生新数组:forEach()/every()/some()/reduce()/reduceRight();
    • 产生新数组:map()/filter();

数组其他相关:

  •  二维数组:
    • 初始化:
Array.matrix = function(numrows,numcols,inital) {

  var arr = [];

  for(var i = 0; i < numrows; ++i) {

    var colnums = [];

    for(var j = 0; j < numcols; ++j) {

      colnums[j] = inital;

    }      

   arr[i] = colnums;  

  }

  rerurn arr;

}
  • 对象数组 
  • 对象中的数组:

demo

 

你可能感兴趣的:(数据结构)