- 定义:
- 一个存储元素的线性集合,元素同通过索引来任何存取,索引通常是数字,用来计算元素之间存储位置的偏移量;
- 使用数组:
- Array.isArray()来判断一个对象是否未数组;
- length属性反映的是当前数组中元素的个数,可确保循环遍历了数组中的所有的元素;
- 由字符串生成数组:
- str.split(" ");通过分隔单词的空格,将字符串分为几部分;、
- 对数组的整体性操作:
- 当把一个数组赋值给另外一个数组时,只是为被赋值的数组增加了一个新的引用;当通过原引用修改了数组的值,另外一个引用也会感知到此变化;这种行为被称为浅复制;
- 深复制函数:copy(被复制的变量,复制到的新变量),将原数组中的每一个元素都复制一份到新数组中;
- 存取函数:
- 访问数组元素的函数,这些函数返回目标数组的某种变体;
- 查找元素:
- indexOf();
- arr.indexOf("Jackie");用于查找arr数组中是否有Jackie,有的话返回Jackie在数组中的索引;若不包含,返回-1;
- 总是返回第一个与参数相同的元素的索引;
- lastIndexOf();
- 总是返回相同元素中最后一个元素的索引,若未找到相同元素,则返回-1;
- indexOf();
- 数组的字符串表示:
- arr.join();和arr.toString();可返回一个包含数组所有元素的字符串,各元素之间用逗号分隔;
- 对数组直接打印,系统会自动调用数组的toString()方法;
- 由已有数组创建新数组:
- arr1.concat(arr2);将数组2元素连接到arr1后;
- arr1.splice(截取的起始索引,截取的长度);从现有数组里截取一个新数组,splice()方法会影响原数组;
- 查找元素:
- 访问数组元素的函数,这些函数返回目标数组的某种变体;
- 可变函数:
- 为数组添加元素:
- arr1.push(新元素);将一个新元素添加到数组末尾;
- arr[arr.length]=新元素;将一个新元素添加到数组末尾;
- arr1.unshift(新元素1,新元素2);将新元素加到原数组头部;
- 从数组中删除元素:
- arr.pop();删除数组末尾的元素;
- arr1.shift();删除数组第一个元素;
- pop()和shift()方法都将删掉的元素作为方法的返回值返回;
- 从数组中间位置添加和删除元素:
- arr.splice(起始索引,0,添加进数组的元素);
- 为数组添加元素:
- 为数组排序:
- arr.reverse();
- 将数组中元素的顺序进行翻转;
- arr.sort();
- 按照字典顺序对元素进行排序;
- 为了让sort()方法也能排序数字类型的元素,可在调用方法时传入一个大小比较函数,排序时,sort()方法将会根据该函数比较数组中两个元素的大小,从而决定整个数组的顺序;
- let num= [40, 100, 1, 5, 25, 10];
- num.sort(function(a,b){
- return a - b;});
- console.log(num);
- //[1, 5, 10, 25, 40, 100]
- arr.reverse();
- 迭代器方法:
- 不生成新数组的迭代器方法:
- arr.forEach(某函数);接受一个函数作为参数,对数组中的每个元素使用该函数;
- arr.every(某函数);接受一个返回值为布尔类型的函数,对数组中每个元素使用该函数。若对于所有的元素,该函数均返回true,则该方法返回true;
- arr.some(某函数);接受一个返回值为布尔类型的函数,只要有一个元素使得该函数返回true,该方法就返回true;
- arr.reduce(某函数);接受一个函数,返回一个值;该方法会从一个累加值开始,不断对累加值和数组中的后续元素调用该函数,直到数组中的最后一个元素,最后返回得到的累加值;
- arr.reduceRight(某函数);从右到左执行;
- 生成新数组的迭代器方法:
- arr.map(某函数);对数组中的每个元素使用某个函数,返回一个新的数组;
- arr.filter(某函数);传入一个返回值为布尔类型的函数,当对数组中所有元素应用该函数,结果均为true时,返回应用该函数后结果为true的元素数组;
- 不生成新数组的迭代器方法:
- 二维和多维数组:
- 创建二维数组:
- const m = 4;
- const n = 5;
- let arr = new Array(m);
- for (var i = 0; i < m; i++) {
- arr[i] = new Array(n);
- }
- console.log(arr);
- 处理二位数组的元素:
- 两个for循环,外层循环对应行,内层循环对应列;
- 层次不齐的数组:
- 每行包含元素个数不同;
- for(var row=0;row < arrs.length; ++row) {
- for(var col=0;col<arrs[row].length;++col)
- {
- }
- }
- 创建二维数组:
- 对象数组:
- 数组可包含对象,数组的方法和属性对对象依然适用;
- 对象中的数组:
- 在对象中,可使用数组存储复杂的数据。
- 欢迎大家留言评论,一起学习共同进步!
04-10
520
