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

时间:2022-09-10 10:15:12

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