前端开发笔记(二十三)

首页 > 科技

前端开发笔记(二十三)

来源:喜剧西西 发布时间:2023-08-25 16:41

JS篇 ⑨

01 数组①

定义

一个包含了多个值的对象通常被描述为“像列表一样的对象”一组数据的集合,存储在单个变量名下的优雅方式

创建数组

利用new创建数组:var arr = new Array();利用数组字面量创建数组:var arr = [];数组里面的数据一定用逗号分隔,如:var arr1 = [1, 2, "hello", true];

获取数组元素

数组元素:数组里面的数据*数组名[索引号]*,索引号从0开始vararr1= [1, 2, "hello", true];console.log(arr1[3]); // trueconsole.log(arr1[4]); // 由于没有这个数组元素 所以输出的结果是 undefined

数组长度

数组名.length数组的长度是元素个数,不要跟索引号搅浑vararr1= [1, 2, "hello", true];console.log(arr1.length); // 4

遍历数组

把数组的元素从头到尾访问一次vararr= ["red", "green", "blue"];for (vari=; i<3; i++) {console.log(arr[i]); // red, green, blue}由于数组索引号从0开始,所以 i 必需从0开始

02 数组②

检测是否为数组

变量名 instanceof ArrayArray.isArray(变量名)

案例:求数组[2,6,1,77,52,25,7]中的最大值vararr= [2, 6, 1, 77, 52, 25, 7, 99];varmax=arr[];for (vari=1; i<arr.length; i++) {if (arr[i] >max) {max=arr[i]; }}console.log(max); // 99

数组转为字符串案例:将数组 ["red", "green", "blue", "pink"] 转换为字符串,并且用 | 或其他符号分割

遍历,将每个数据分别拿出来,后面加分隔符vararr= ["red", "green", "blue", "pink"];varstr="";varsep="|";for (vari=; i<arr.length-1; i++) {str+=arr[i] +sep;}str+=arr[arr.length-1];console.log(str);arr.join(分隔符)vararr= ["red", "green", "blue", "pink"];console.log(arr.join("|"));

新增数组元素

直接修改数组长度:多于原来的长度,多出的数,值为undefined;少于原来的长度,按索引号顺序将后面的去掉vararr= ["red", "green", "blue"];console.log(arr.length);arr.length=5;console.log(arr); // ["red", "green", "blue", , ]console.log(arr[3]); // undefined修改索引号:arr[index] = 值vararr1= ["red", "green", "blue"];arr1[3] ="yellow";console.log(arr1.length); // 4console.log(arr1); // ["red", "green", "blue", "yellow"]console.log(arr1[3]); // yellow

添加删除数组元素

push():数组末尾添加一或多个元素vararr1= ["red", "green", "blue"];arr1.push("yellow");console.log(arr1); // [ "red", "green", "blue", "yellow" ]pop():删除数组最后一个元素vararr1= ["red", "green", "blue"];arr1.pop();console.log(arr1); // [ "red", "green" ]unshift():数组开头添加一或多个元素vararr1= ["red", "green", "blue"];arr1.unshift("yellow");console.log(arr1); // [ "yellow", "red", "green", "blue" ]shift():删除数组开头一个元素vararr1= ["red", "green", "blue"];arr1.shift();console.log(arr1); // [ "green", "blue" ]

03 数组③

获取数组元素索引

第二个参数默认为,从头开始查找。若设置参数,则从该参数所显示的索引号开始查找

arr.indexOf(前提):返回满足条件的第一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.indexOf("red")); // 0arr.lastIndexOf(前提):返回满足条件的最后一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.lastIndexOf("red")); // 4

筛选数组案例:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于即是 10 的元素选出来,放入新数组

方法一:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];varj=;for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[j] =arr[i];j++; }}console.log(newArr); // [77, 52, 25]方法二:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];// 刚开始 newArr.length 就是 0for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[newArr.length] =arr[i]; }}console.log(newArr); // [77, 52, 25]

数组去重案例:将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 重复的元素 去掉后,形成一个不重复的新数组vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];for (vari=; i<arr.length; i++) {for (varj=; j<arr.length; j++) {if (newArr.indexOf(arr[i]) ==-1) {newArr.push(arr[i]); } }}console.log(newArr); // [2, 0, 6, 1, 77, 52, 25, 7]

翻转数组案例:将数组 ["red", "green", "blue", "pink", "purple"] 的内容反过来存放

遍历vararr= ["red", "green", "blue", "purple", "hotpink"];varnewArr= [];for (vari=arr.length-1; i>=; i--) {newArr[newArr.length] =arr[i]}console.log(newArr); // ["hotpink", "purple", "blue", "green", "red"]arr.reverse()vararr= ["red", "green", "blue", "purple", "hotpink"];console.log(arr.reverse()); // ["hotpink", "purple", "blue", "green", "red"]

冒泡排序

第一个数和第二个数进行比较,顺序不对则交换交换后的第二个数和第三个数进行比较...一遍后,最后的那个数不是最大就是最小然后进行第二遍,直到获取准确顺序vararr= [4, 1, 2, 3, 5];for (vari=; i<=arr.length-1; i++) { // 外层轮回管趟数 for (varj=; j<=arr.length-i-1; j++) { // 里面的轮回管 每一趟的交换次数// 内部交换2个变量的值 前一个和后面一个数组元素相比较if (arr[j] >arr[j+1]) {vartemp=arr[j];arr[j] =arr[j+1];arr[j+1] =temp; } }}console.log(arr);

交换两个变量值

方式四:利用数组②vara="111", b="222";a= [a, b];b=a[];a=a[1];console.log(a); // 222console.log(b); //111方式三:利用数组①vara="111", b="222";[a, b] = [b, a];console.log(a); // 222console.log(b); // 111

JS篇 ⑨

01 数组①

定义

一个包含了多个值的对象通常被描述为“像列表一样的对象”一组数据的集合,存储在单个变量名下的优雅方式

创建数组

利用new创建数组:var arr = new Array();利用数组字面量创建数组:var arr = [];数组里面的数据一定用逗号分隔,如:var arr1 = [1, 2, "hello", true];

获取数组元素

数组元素:数组里面的数据*数组名[索引号]*,索引号从0开始vararr1= [1, 2, "hello", true];console.log(arr1[3]); // trueconsole.log(arr1[4]); // 由于没有这个数组元素 所以输出的结果是 undefined

数组长度

数组名.length数组的长度是元素个数,不要跟索引号搅浑vararr1= [1, 2, "hello", true];console.log(arr1.length); // 4

遍历数组

把数组的元素从头到尾访问一次vararr= ["red", "green", "blue"];for (vari=; i<3; i++) {console.log(arr[i]); // red, green, blue}由于数组索引号从0开始,所以 i 必需从0开始

02 数组②

检测是否为数组

变量名 instanceof ArrayArray.isArray(变量名)

案例:求数组[2,6,1,77,52,25,7]中的最大值vararr= [2, 6, 1, 77, 52, 25, 7, 99];varmax=arr[];for (vari=1; i<arr.length; i++) {if (arr[i] >max) {max=arr[i]; }}console.log(max); // 99

数组转为字符串案例:将数组 ["red", "green", "blue", "pink"] 转换为字符串,并且用 | 或其他符号分割

遍历,将每个数据分别拿出来,后面加分隔符vararr= ["red", "green", "blue", "pink"];varstr="";varsep="|";for (vari=; i<arr.length-1; i++) {str+=arr[i] +sep;}str+=arr[arr.length-1];console.log(str);arr.join(分隔符)vararr= ["red", "green", "blue", "pink"];console.log(arr.join("|"));

新增数组元素

直接修改数组长度:多于原来的长度,多出的数,值为undefined;少于原来的长度,按索引号顺序将后面的去掉vararr= ["red", "green", "blue"];console.log(arr.length);arr.length=5;console.log(arr); // ["red", "green", "blue", , ]console.log(arr[3]); // undefined修改索引号:arr[index] = 值vararr1= ["red", "green", "blue"];arr1[3] ="yellow";console.log(arr1.length); // 4console.log(arr1); // ["red", "green", "blue", "yellow"]console.log(arr1[3]); // yellow

添加删除数组元素

push():数组末尾添加一或多个元素vararr1= ["red", "green", "blue"];arr1.push("yellow");console.log(arr1); // [ "red", "green", "blue", "yellow" ]pop():删除数组最后一个元素vararr1= ["red", "green", "blue"];arr1.pop();console.log(arr1); // [ "red", "green" ]unshift():数组开头添加一或多个元素vararr1= ["red", "green", "blue"];arr1.unshift("yellow");console.log(arr1); // [ "yellow", "red", "green", "blue" ]shift():删除数组开头一个元素vararr1= ["red", "green", "blue"];arr1.shift();console.log(arr1); // [ "green", "blue" ]

03 数组③

获取数组元素索引

第二个参数默认为,从头开始查找。若设置参数,则从该参数所显示的索引号开始查找

arr.indexOf(前提):返回满足条件的第一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.indexOf("red")); // 0arr.lastIndexOf(前提):返回满足条件的最后一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.lastIndexOf("red")); // 4

筛选数组案例:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于即是 10 的元素选出来,放入新数组

方法一:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];varj=;for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[j] =arr[i];j++; }}console.log(newArr); // [77, 52, 25]方法二:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];// 刚开始 newArr.length 就是 0for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[newArr.length] =arr[i]; }}console.log(newArr); // [77, 52, 25]

数组去重案例:将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 重复的元素 去掉后,形成一个不重复的新数组vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];for (vari=; i<arr.length; i++) {for (varj=; j<arr.length; j++) {if (newArr.indexOf(arr[i]) ==-1) {newArr.push(arr[i]); } }}console.log(newArr); // [2, 0, 6, 1, 77, 52, 25, 7]

翻转数组案例:将数组 ["red", "green", "blue", "pink", "purple"] 的内容反过来存放

遍历vararr= ["red", "green", "blue", "purple", "hotpink"];varnewArr= [];for (vari=arr.length-1; i>=; i--) {newArr[newArr.length] =arr[i]}console.log(newArr); // ["hotpink", "purple", "blue", "green", "red"]arr.reverse()vararr= ["red", "green", "blue", "purple", "hotpink"];console.log(arr.reverse()); // ["hotpink", "purple", "blue", "green", "red"]

冒泡排序

第一个数和第二个数进行比较,顺序不对则交换交换后的第二个数和第三个数进行比较...一遍后,最后的那个数不是最大就是最小然后进行第二遍,直到获取准确顺序vararr= [4, 1, 2, 3, 5];for (vari=; i<=arr.length-1; i++) { // 外层轮回管趟数 for (varj=; j<=arr.length-i-1; j++) { // 里面的轮回管 每一趟的交换次数// 内部交换2个变量的值 前一个和后面一个数组元素相比较if (arr[j] >arr[j+1]) {vartemp=arr[j];arr[j] =arr[j+1];arr[j+1] =temp; } }}console.log(arr);

交换两个变量值

方式四:利用数组②vara="111", b="222";a= [a, b];b=a[];a=a[1];console.log(a); // 222console.log(b); //111方式三:利用数组①vara="111", b="222";[a, b] = [b, a];console.log(a); // 222console.log(b); // 111

JS篇 ⑨

01 数组①

定义

一个包含了多个值的对象通常被描述为“像列表一样的对象”一组数据的集合,存储在单个变量名下的优雅方式

创建数组

利用new创建数组:var arr = new Array();利用数组字面量创建数组:var arr = [];数组里面的数据一定用逗号分隔,如:var arr1 = [1, 2, "hello", true];

获取数组元素

数组元素:数组里面的数据*数组名[索引号]*,索引号从0开始vararr1= [1, 2, "hello", true];console.log(arr1[3]); // trueconsole.log(arr1[4]); // 由于没有这个数组元素 所以输出的结果是 undefined

数组长度

数组名.length数组的长度是元素个数,不要跟索引号搅浑vararr1= [1, 2, "hello", true];console.log(arr1.length); // 4

遍历数组

把数组的元素从头到尾访问一次vararr= ["red", "green", "blue"];for (vari=; i<3; i++) {console.log(arr[i]); // red, green, blue}由于数组索引号从0开始,所以 i 必需从0开始

02 数组②

检测是否为数组

变量名 instanceof ArrayArray.isArray(变量名)

案例:求数组[2,6,1,77,52,25,7]中的最大值vararr= [2, 6, 1, 77, 52, 25, 7, 99];varmax=arr[];for (vari=1; i<arr.length; i++) {if (arr[i] >max) {max=arr[i]; }}console.log(max); // 99

数组转为字符串案例:将数组 ["red", "green", "blue", "pink"] 转换为字符串,并且用 | 或其他符号分割

遍历,将每个数据分别拿出来,后面加分隔符vararr= ["red", "green", "blue", "pink"];varstr="";varsep="|";for (vari=; i<arr.length-1; i++) {str+=arr[i] +sep;}str+=arr[arr.length-1];console.log(str);arr.join(分隔符)vararr= ["red", "green", "blue", "pink"];console.log(arr.join("|"));

新增数组元素

直接修改数组长度:多于原来的长度,多出的数,值为undefined;少于原来的长度,按索引号顺序将后面的去掉vararr= ["red", "green", "blue"];console.log(arr.length);arr.length=5;console.log(arr); // ["red", "green", "blue", , ]console.log(arr[3]); // undefined修改索引号:arr[index] = 值vararr1= ["red", "green", "blue"];arr1[3] ="yellow";console.log(arr1.length); // 4console.log(arr1); // ["red", "green", "blue", "yellow"]console.log(arr1[3]); // yellow

添加删除数组元素

push():数组末尾添加一或多个元素vararr1= ["red", "green", "blue"];arr1.push("yellow");console.log(arr1); // [ "red", "green", "blue", "yellow" ]pop():删除数组最后一个元素vararr1= ["red", "green", "blue"];arr1.pop();console.log(arr1); // [ "red", "green" ]unshift():数组开头添加一或多个元素vararr1= ["red", "green", "blue"];arr1.unshift("yellow");console.log(arr1); // [ "yellow", "red", "green", "blue" ]shift():删除数组开头一个元素vararr1= ["red", "green", "blue"];arr1.shift();console.log(arr1); // [ "green", "blue" ]

03 数组③

获取数组元素索引

第二个参数默认为,从头开始查找。若设置参数,则从该参数所显示的索引号开始查找

arr.indexOf(前提):返回满足条件的第一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.indexOf("red")); // 0arr.lastIndexOf(前提):返回满足条件的最后一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.lastIndexOf("red")); // 4

筛选数组案例:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于即是 10 的元素选出来,放入新数组

方法一:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];varj=;for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[j] =arr[i];j++; }}console.log(newArr); // [77, 52, 25]方法二:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];// 刚开始 newArr.length 就是 0for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[newArr.length] =arr[i]; }}console.log(newArr); // [77, 52, 25]

数组去重案例:将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 重复的元素 去掉后,形成一个不重复的新数组vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];for (vari=; i<arr.length; i++) {for (varj=; j<arr.length; j++) {if (newArr.indexOf(arr[i]) ==-1) {newArr.push(arr[i]); } }}console.log(newArr); // [2, 0, 6, 1, 77, 52, 25, 7]

翻转数组案例:将数组 ["red", "green", "blue", "pink", "purple"] 的内容反过来存放

遍历vararr= ["red", "green", "blue", "purple", "hotpink"];varnewArr= [];for (vari=arr.length-1; i>=; i--) {newArr[newArr.length] =arr[i]}console.log(newArr); // ["hotpink", "purple", "blue", "green", "red"]arr.reverse()vararr= ["red", "green", "blue", "purple", "hotpink"];console.log(arr.reverse()); // ["hotpink", "purple", "blue", "green", "red"]

冒泡排序

第一个数和第二个数进行比较,顺序不对则交换交换后的第二个数和第三个数进行比较...一遍后,最后的那个数不是最大就是最小然后进行第二遍,直到获取准确顺序vararr= [4, 1, 2, 3, 5];for (vari=; i<=arr.length-1; i++) { // 外层轮回管趟数 for (varj=; j<=arr.length-i-1; j++) { // 里面的轮回管 每一趟的交换次数// 内部交换2个变量的值 前一个和后面一个数组元素相比较if (arr[j] >arr[j+1]) {vartemp=arr[j];arr[j] =arr[j+1];arr[j+1] =temp; } }}console.log(arr);

交换两个变量值

方式四:利用数组②vara="111", b="222";a= [a, b];b=a[];a=a[1];console.log(a); // 222console.log(b); //111方式三:利用数组①vara="111", b="222";[a, b] = [b, a];console.log(a); // 222console.log(b); // 111

JS篇 ⑨

01 数组①

定义

一个包含了多个值的对象通常被描述为“像列表一样的对象”一组数据的集合,存储在单个变量名下的优雅方式

创建数组

利用new创建数组:var arr = new Array();利用数组字面量创建数组:var arr = [];数组里面的数据一定用逗号分隔,如:var arr1 = [1, 2, "hello", true];

获取数组元素

数组元素:数组里面的数据*数组名[索引号]*,索引号从0开始vararr1= [1, 2, "hello", true];console.log(arr1[3]); // trueconsole.log(arr1[4]); // 由于没有这个数组元素 所以输出的结果是 undefined

数组长度

数组名.length数组的长度是元素个数,不要跟索引号搅浑vararr1= [1, 2, "hello", true];console.log(arr1.length); // 4

遍历数组

把数组的元素从头到尾访问一次vararr= ["red", "green", "blue"];for (vari=; i<3; i++) {console.log(arr[i]); // red, green, blue}由于数组索引号从0开始,所以 i 必需从0开始

02 数组②

检测是否为数组

变量名 instanceof ArrayArray.isArray(变量名)

案例:求数组[2,6,1,77,52,25,7]中的最大值vararr= [2, 6, 1, 77, 52, 25, 7, 99];varmax=arr[];for (vari=1; i<arr.length; i++) {if (arr[i] >max) {max=arr[i]; }}console.log(max); // 99

数组转为字符串案例:将数组 ["red", "green", "blue", "pink"] 转换为字符串,并且用 | 或其他符号分割

遍历,将每个数据分别拿出来,后面加分隔符vararr= ["red", "green", "blue", "pink"];varstr="";varsep="|";for (vari=; i<arr.length-1; i++) {str+=arr[i] +sep;}str+=arr[arr.length-1];console.log(str);arr.join(分隔符)vararr= ["red", "green", "blue", "pink"];console.log(arr.join("|"));

新增数组元素

直接修改数组长度:多于原来的长度,多出的数,值为undefined;少于原来的长度,按索引号顺序将后面的去掉vararr= ["red", "green", "blue"];console.log(arr.length);arr.length=5;console.log(arr); // ["red", "green", "blue", , ]console.log(arr[3]); // undefined修改索引号:arr[index] = 值vararr1= ["red", "green", "blue"];arr1[3] ="yellow";console.log(arr1.length); // 4console.log(arr1); // ["red", "green", "blue", "yellow"]console.log(arr1[3]); // yellow

添加删除数组元素

push():数组末尾添加一或多个元素vararr1= ["red", "green", "blue"];arr1.push("yellow");console.log(arr1); // [ "red", "green", "blue", "yellow" ]pop():删除数组最后一个元素vararr1= ["red", "green", "blue"];arr1.pop();console.log(arr1); // [ "red", "green" ]unshift():数组开头添加一或多个元素vararr1= ["red", "green", "blue"];arr1.unshift("yellow");console.log(arr1); // [ "yellow", "red", "green", "blue" ]shift():删除数组开头一个元素vararr1= ["red", "green", "blue"];arr1.shift();console.log(arr1); // [ "green", "blue" ]

03 数组③

获取数组元素索引

第二个参数默认为,从头开始查找。若设置参数,则从该参数所显示的索引号开始查找

arr.indexOf(前提):返回满足条件的第一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.indexOf("red")); // 0arr.lastIndexOf(前提):返回满足条件的最后一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.lastIndexOf("red")); // 4

筛选数组案例:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于即是 10 的元素选出来,放入新数组

方法一:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];varj=;for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[j] =arr[i];j++; }}console.log(newArr); // [77, 52, 25]方法二:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];// 刚开始 newArr.length 就是 0for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[newArr.length] =arr[i]; }}console.log(newArr); // [77, 52, 25]

数组去重案例:将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 重复的元素 去掉后,形成一个不重复的新数组vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];for (vari=; i<arr.length; i++) {for (varj=; j<arr.length; j++) {if (newArr.indexOf(arr[i]) ==-1) {newArr.push(arr[i]); } }}console.log(newArr); // [2, 0, 6, 1, 77, 52, 25, 7]

翻转数组案例:将数组 ["red", "green", "blue", "pink", "purple"] 的内容反过来存放

遍历vararr= ["red", "green", "blue", "purple", "hotpink"];varnewArr= [];for (vari=arr.length-1; i>=; i--) {newArr[newArr.length] =arr[i]}console.log(newArr); // ["hotpink", "purple", "blue", "green", "red"]arr.reverse()vararr= ["red", "green", "blue", "purple", "hotpink"];console.log(arr.reverse()); // ["hotpink", "purple", "blue", "green", "red"]

冒泡排序

第一个数和第二个数进行比较,顺序不对则交换交换后的第二个数和第三个数进行比较...一遍后,最后的那个数不是最大就是最小然后进行第二遍,直到获取准确顺序vararr= [4, 1, 2, 3, 5];for (vari=; i<=arr.length-1; i++) { // 外层轮回管趟数 for (varj=; j<=arr.length-i-1; j++) { // 里面的轮回管 每一趟的交换次数// 内部交换2个变量的值 前一个和后面一个数组元素相比较if (arr[j] >arr[j+1]) {vartemp=arr[j];arr[j] =arr[j+1];arr[j+1] =temp; } }}console.log(arr);

交换两个变量值

方式四:利用数组②vara="111", b="222";a= [a, b];b=a[];a=a[1];console.log(a); // 222console.log(b); //111方式三:利用数组①vara="111", b="222";[a, b] = [b, a];console.log(a); // 222console.log(b); // 111

JS篇 ⑨

01 数组①

定义

一个包含了多个值的对象通常被描述为“像列表一样的对象”一组数据的集合,存储在单个变量名下的优雅方式

创建数组

利用new创建数组:var arr = new Array();利用数组字面量创建数组:var arr = [];数组里面的数据一定用逗号分隔,如:var arr1 = [1, 2, "hello", true];

获取数组元素

数组元素:数组里面的数据*数组名[索引号]*,索引号从0开始vararr1= [1, 2, "hello", true];console.log(arr1[3]); // trueconsole.log(arr1[4]); // 由于没有这个数组元素 所以输出的结果是 undefined

数组长度

数组名.length数组的长度是元素个数,不要跟索引号搅浑vararr1= [1, 2, "hello", true];console.log(arr1.length); // 4

遍历数组

把数组的元素从头到尾访问一次vararr= ["red", "green", "blue"];for (vari=; i<3; i++) {console.log(arr[i]); // red, green, blue}由于数组索引号从0开始,所以 i 必需从0开始

02 数组②

检测是否为数组

变量名 instanceof ArrayArray.isArray(变量名)

案例:求数组[2,6,1,77,52,25,7]中的最大值vararr= [2, 6, 1, 77, 52, 25, 7, 99];varmax=arr[];for (vari=1; i<arr.length; i++) {if (arr[i] >max) {max=arr[i]; }}console.log(max); // 99

数组转为字符串案例:将数组 ["red", "green", "blue", "pink"] 转换为字符串,并且用 | 或其他符号分割

遍历,将每个数据分别拿出来,后面加分隔符vararr= ["red", "green", "blue", "pink"];varstr="";varsep="|";for (vari=; i<arr.length-1; i++) {str+=arr[i] +sep;}str+=arr[arr.length-1];console.log(str);arr.join(分隔符)vararr= ["red", "green", "blue", "pink"];console.log(arr.join("|"));

新增数组元素

直接修改数组长度:多于原来的长度,多出的数,值为undefined;少于原来的长度,按索引号顺序将后面的去掉vararr= ["red", "green", "blue"];console.log(arr.length);arr.length=5;console.log(arr); // ["red", "green", "blue", , ]console.log(arr[3]); // undefined修改索引号:arr[index] = 值vararr1= ["red", "green", "blue"];arr1[3] ="yellow";console.log(arr1.length); // 4console.log(arr1); // ["red", "green", "blue", "yellow"]console.log(arr1[3]); // yellow

添加删除数组元素

push():数组末尾添加一或多个元素vararr1= ["red", "green", "blue"];arr1.push("yellow");console.log(arr1); // [ "red", "green", "blue", "yellow" ]pop():删除数组最后一个元素vararr1= ["red", "green", "blue"];arr1.pop();console.log(arr1); // [ "red", "green" ]unshift():数组开头添加一或多个元素vararr1= ["red", "green", "blue"];arr1.unshift("yellow");console.log(arr1); // [ "yellow", "red", "green", "blue" ]shift():删除数组开头一个元素vararr1= ["red", "green", "blue"];arr1.shift();console.log(arr1); // [ "green", "blue" ]

03 数组③

获取数组元素索引

第二个参数默认为,从头开始查找。若设置参数,则从该参数所显示的索引号开始查找

arr.indexOf(前提):返回满足条件的第一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.indexOf("red")); // 0arr.lastIndexOf(前提):返回满足条件的最后一个索引号vararr= ["red", "green", "blue", "green", "red"];console.log(arr.lastIndexOf("red")); // 4

筛选数组案例:将数组 [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] 中大于即是 10 的元素选出来,放入新数组

方法一:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];varj=;for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[j] =arr[i];j++; }}console.log(newArr); // [77, 52, 25]方法二:vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];// 刚开始 newArr.length 就是 0for (vari=; i<arr.length; i++) {if (arr[i] >=10) {// 新数组索引号应该从0开始 依次递增newArr[newArr.length] =arr[i]; }}console.log(newArr); // [77, 52, 25]

数组去重案例:将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的 重复的元素 去掉后,形成一个不重复的新数组vararr= [2, , 6, 1, 77, , 52, , 25, 7];varnewArr= [];for (vari=; i<arr.length; i++) {for (varj=; j<arr.length; j++) {if (newArr.indexOf(arr[i]) ==-1) {newArr.push(arr[i]); } }}console.log(newArr); // [2, 0, 6, 1, 77, 52, 25, 7]

翻转数组案例:将数组 ["red", "green", "blue", "pink", "purple"] 的内容反过来存放

遍历vararr= ["red", "green", "blue", "purple", "hotpink"];varnewArr= [];for (vari=arr.length-1; i>=; i--) {newArr[newArr.length] =arr[i]}console.log(newArr); // ["hotpink", "purple", "blue", "green", "red"]arr.reverse()vararr= ["red", "green", "blue", "purple", "hotpink"];console.log(arr.reverse()); // ["hotpink", "purple", "blue", "green", "red"]

冒泡排序

第一个数和第二个数进行比较,顺序不对则交换交换后的第二个数和第三个数进行比较...一遍后,最后的那个数不是最大就是最小然后进行第二遍,直到获取准确顺序vararr= [4, 1, 2, 3, 5];for (vari=; i<=arr.length-1; i++) { // 外层轮回管趟数 for (varj=; j<=arr.length-i-1; j++) { // 里面的轮回管 每一趟的交换次数// 内部交换2个变量的值 前一个和后面一个数组元素相比较if (arr[j] >arr[j+1]) {vartemp=arr[j];arr[j] =arr[j+1];arr[j+1] =temp; } }}console.log(arr);

交换两个变量值

方式四:利用数组②vara="111", b="222";a= [a, b];b=a[];a=a[1];console.log(a); // 222console.log(b); //111方式三:利用数组①vara="111", b="222";[a, b] = [b, a];console.log(a); // 222console.log(b); // 111

上一篇:如何将Excel... 下一篇:如何通过微信...
猜你喜欢
热门阅读
同类推荐