博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript | 数组
阅读量:5154 次
发布时间:2019-06-13

本文共 3594 字,大约阅读时间需要 11 分钟。

————————————————————————————————————————————

数组

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

数组结构

  • JavaScript的数组由索引和值组成

  • 索引即可以是正整数,也可以是其他类型,但其他类型索引不算在数组长度内

  • 当数组索引不连续时,又称为稀疏数组,但相比较连续数组来说,稀疏数组查找元素的速度较慢,未定义部分为undefined

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

创建数组:两种形式

  • 数组字面量
  • 构造函数Array()创建数组

遍历数组:三种形式

  • for循环遍历下标连续的数组
  • for-in遍历数组
  • forEach()构造函数遍历数组
1 // 数组字面量的形式 2 var arr1 = []; 3 // 数组中可以存放所有的变量形式 4 var arr2 = [1, 2.3, null, true, false, undefined, [1, 2, 3, 4], { x: 1, y: 2, z: 3 }]; 5 console.log(arr2); 6 console.log(arr2[6][1]); 7 console.log(arr2[7].y); 8 // 打印数组长度 9 console.log(arr2.length);10 // 引用内容来创建数组11 var num = 1;12 var arr3 = [num, num + 1, num * 2];13 console.log(arr3);14 // 省略数组中的某个元素,默认为undefined15 var arr4 = [1, , 3];16 console.log(arr4);17 18 // 通过构造函数的方式19 var arr5 = new Array;20 // 多个参数时定义的是数组的内容21 var arr6 = new Array(1, 2, 3);22 console.log(arr6);23 // 只传一个参数时定义的是数组的长度24 var arr7 = new Array(6);25 console.log(arr7);26 console.log(arr7.length);27 arr7[9] = '1';28 console.log(arr7);29 console.log(arr7.length);30 // 任何变量都可以作为索引值,但只有非负整数作为索引时长度才会变化31 var arr8 = new Array();32 arr8[2.3] = 'a';33 arr8[-2333] = 'b';34 arr8['c'] = 'b';35 // 通过for in取出元素以及元素的索引36 for (var i in arr8) {37     console.log(i + ":" + arr8[i]);38 }39 console.log(arr8);40 console.log(arr8.length);41 arr8[2] = 'd';42 console.log(arr8);43 console.log(arr8.length);44 // 压栈弹栈操作45 var arr9 = new Array(1, 2, 3);46 arr9.push(4, 5, 6, 7);47 console.log(arr9);48 console.log(arr9.length);49 arr9.pop();50 arr9.pop();51 console.log(arr9);52 console.log(arr9.length);53 // 在首部加入元素54 arr9.unshift(9, 10, 11, 12);55 console.log(arr9);56 // 首部弹出元素57 arr9.shift();58 console.log(arr9);59 // 删除元素,但删除后长度不变60 delete arr9[3];61 console.log(arr9);62 console.log(arr9.length);63 // 稀疏数组遍历64 var arr10 = [1, 2, 3];65 arr10[100] = 99;66 // for-in遍历集成下来的属性67 for (var i in arr10) {68     console.log(i);69 }70 // 在forEach()中定义函数体,71 arr10.forEach(Test);72 73 function Test(element, index, array) {74     console.log("array:" + array + " index:" + index + " element:" + element);75 }

常用方法:

1 // 通过.map方法返回新函数,在map方法中调用Trans函数,对数组中的每一个元素进行替换操作 2 var arr = ['abc', 'bcd', 'cde']; 3 res = arr.map(Trans); 4  5 function Trans(x) { 6     return x.replace(/c/g, '!').toUpperCase(); 7 } 8 console.log(res); 9 10 // filter11 var arr = [1, 3, 4, 5, 6, 6, 123, 6547, null, undefined, ""];12 res = arr.filter(function(x) {13     return (x <= 10) && (x != null) && (x != "");14 })15 console.log(res);16 17 // reduce作为累加器,从左到右依次进行返回运算18 var arr = [1, 2, 3, 4, 5, 6, 7, 8];19 res = arr.reduce(function(a, b) {20     return a - b;21 })22 console.log(res);23 res = arr.reduce(function(a, b) {24     return a * b;25 })26 console.log(res);27 // reduceRight从右往左28 res = arr.reduceRight(function(a, b) {29     return a - b;30 })31 console.log(res);32 33 // every函数检测是否所有的元素都符合要求,有不符合的则返回false34 var age = [12, 34, 55, 4];35 res = age.every(function(x) {36     return x >= 18;37 })38 console.log(res);39 // some检测的是否有符合的,有符合的则返回true40 var age = [12, 34, 55, 4];41 res = age.some(function(x) {42     return x >= 18;43 })44 console.log(res);45 46 // 索引47 var arr = ['a','b','c','b','d','b','e'];48 // 第一个索引位49 res = arr.indexOf('b');50 console.log(res);51 // 最后一个索引位52 res = arr.lastIndexOf('b');53 console.log(res);54 // 索引开始位置55 res = arr.indexOf('b',3);56 console.log(res);

   

转载于:https://www.cnblogs.com/hughdong/p/7197119.html

你可能感兴趣的文章
快速幂 模板及应用
查看>>
批处理/DOS命令删除文件夹下某类型的文件
查看>>
模板 - 数学 - 矩阵快速幂
查看>>
优秀的持久层框架Mybatis,连接数据库快人一步
查看>>
线段树 延迟更新
查看>>
PAT L2-016 愿天下有情人都是失散多年的兄妹
查看>>
抛弃IIS,利用FastCGI让Asp.net与Nginx在一起
查看>>
C. Tanya and Toys_模拟
查看>>
使用SwingWork反而阻塞SwingUI
查看>>
Windchill中如何扩展字段长度?
查看>>
pytorch中的forward前向传播机制
查看>>
课后作业-阅读任务-阅读提问-4
查看>>
Delphi 深入浅出VCL(2)-TObject所有对象的根
查看>>
配置IIS虚拟目录遇到的5个问题
查看>>
2-03顺序表的操作
查看>>
耿丹CS16-2班第一次作业汇总
查看>>
查看mysql表大小
查看>>
命令行程序测试自动化
查看>>
My Blog
查看>>
array_reduce() 与 array_map()
查看>>