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

 

posted @ 2014-10-12 13:29  JinksPeng  阅读(286)  评论(0编辑  收藏  举报