ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

JavaScript第三章 数组

JavaScript第三章 数组 3. 数组3.1 数组基础程序 算法条件、循环、变量、运算符) 数据结构储存数据的容器线性表内存空间是连续的数组JS例外查找表内存空间不连续键值对 python字典 JavaMap数组的定义直接赋值[元素内容]vararr1[10,20,30,40,50];console.log(arr1);使用Array(元素内容)vararr2newArray(11,22,33,44,55);console.log(arr2);使用Array(长度)——创建具备初始长度的数组vararr3Array(10);console.log(arr3);创建空数组长度为0vararrEmpty1[];vararrEmpty2newArray();具备一定初始容量的数组vararrEmpty3newArray(5);数组的访问// 1.通过索引访问数组元素 数组名[下标]console.log(arr1[0]);//10console.log(arr1.length-1);//访问数组的最大下标 数组长度数组名.lengthconsole.log(arr1.length);//5 访问数组的长度console.log(arr1[4]);//50console.log(arr1[5]);//访问的元素不存在等价于访问一个不存在的变量 undefined 超出数组范围返回undefined// 通过下标设置数组元素值——可以储存不同类型的数据vararr4newArray(3);arr4[0]100;arr4[1]111;arr4[2]张三;console.log(arr4);3.2 数组遍历普通 for 循环vararr1newArray(10,20,30,40,50);for(vari0;iarr1.length;i){console.log(arr1[i]);}增强循环1——forin遍历下标// 循环增强1——forin 循环变量 in 数组名// 遍历数组的下标for(variinarr1){console.log(arr1[i]);}增强循环2——forof遍历数组元素// 循环增强2——forof 循环变量 of 数组名// 遍历数组的元素for(varitemofarr1){console.log(item);}⚠forEach()forEach是数组遍历方法对数组每一项执行回调函数没有返回值不能用break/continue跳出。只用来遍历不返回新数组map才返回新数组语法arr.forEach(function(item,index,arr){// item当前元素// index当前下标// arr原数组可选})基础示例constarr[10,20,30];arr.forEach(function(item,index){console.log(index,item)})// 0 10// 1 20// 2 30​ 箭头函数简写arr.forEach((item,index){console.log(item)})重点特点面试高频无返回值return 只能退出本次回调不能终止遍历constarr[1,2,3];arr.forEach(item{if(item2)return;// 仅仅跳过当前这一项循环继续执行console.log(item)})//输出1 3❗不能用 break / continue会直接报错。想要中途跳出用普通for循环 / some / every不会遍历空空位稀疏数组constarr[1,,3]arr.forEach(iconsole.log(i))//只打印1,3不会改变原数组除非你手动修改item引用类型 forEach vs map必背对比方法返回值用途能否中断forEachundefined单纯遍历、执行操作❌不能中断map返回新数组遍历并加工每个元素生成新数组❌不能中断面试简答forEach是数组实例方法遍历数组每一项为每个元素执行回调回调参数依次为当前元素、索引、原数组没有返回值return只能跳过当前项无法终止整个循环不支持break适合单纯遍历执行逻辑。补充NodeList也能用forEachdocument.querySelectorAll(li).forEach(li{li.style.colorred})3.3 常用API现成可调用的功能接口拿来直接用方法描述concat()连接两个或更多的数组并返回结果。join()把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。pop()删除并返回数组的最后一个元素push()向数组的末尾添加一个或更多元素并返回新的长度。reverse()颠倒数组中元素的顺序。shift()删除并返回数组的第一个元素slice()从某个已有的数组返回选定索引区间的元素原数组的内容不变sort()对数组的元素进行排序该方法会改变原来的数组而不会创建新的数组splice()splice (起始索引结束索引替换的元素内容)删除开始和结束索引所对应的元素并使用替换元素代替splice (起始索引结束索引)删除开始和结束索引所对应的元素且原数组发生变化unshift()向数组的开头添加一个或更多元素并返回新的长度。toSource()返回该对象的源代码。toString()把数组转换为字符串并返回结果。toLocaleString()把数组转换为本地数组并返回结果。valueOf()返回数组对象的原始值3.4 二维数组// 1.创建二维数组// 直接赋值vararr1[[1,2],[2,3],[3,4]]console.log(arr1)// Arrayvararr2newArray(newArray(1,2),newArray(2,3))console.log(arr2)//2.访问console.log(arr1[1][0])//2console.log(arr1[2][1])//4
返回列表