ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 数组 ## 1.遍历数组 ~~~ var arr = [1,2,3]; ~~~ 1.1 ~~~ for(let i=0;i<arr.length;i++){ console.log(arr[i]+","); } ~~~ 1.2 ~~~ for(let k in arr){ console.log(arr[k]+";"); } ~~~ 1.3 ~~~ for(let k of arr){ console.log(k); } ~~~ 1.4 ~~~ arr.forEach((v,k)=>{ console.log(v);//数组值 /* console.log(k);//数组下标 */ }) ~~~ ## 2.数组的添加 ### 2.1添加 ~~~ <script> /* 增加: 1.push 从后增加,会改变数组的结构 2.unshift 从前增加,会改变数组的结构 3.concat() 从后增加,不会改变数组的内容 */ var arr = [1,2,3,4]; // arr.push(5,6,7); // arr.unshift(-1,0); var b = arr.concat(8,9); console.log(b) console.log(arr) </script> ~~~ ### 2.2复制 ~~~ <script> var arr = [1,2,3,4,5]; /* var b = []; for(let i=0;i<arr.length;i++){ b.push(arr[i]); } */ var b= [].concat(arr); console.log(b); /* var b = arr.slice(0); console.log(b); */ </script> ~~~ ## 3.数组的删除 ~~~ <script> /* shift()-->从头删除并返回第一个数组值 pop()-->从后删除并返回第一个数组值 */ var arr = [1,2,3,4,5]; arr.shift(); arr.pop(); console.log(arr);// [2,3,4] </script> ~~~ ## 4.数组的修改 ~~~ <script> /* splice(index,howmany,item) index-->从哪里开始 howmany -->删除几个 item-->在删除的地方添加的值 */ var arr = [1,2,3,4,5]; arr.splice(4,0,8,9); console.log(arr); </script> ~~~ ## 5.数组查询 ~~~ <script> /* 查询数组中值的下标 arr.indexOf(value) */ // var index = arr.indexOf(5); // console.log(index); /* slice--截取 arr.slice(startIndex,lastIndex)-->包含startIndex,不包含lastIndex */ var arr = [1,2,3,4,5]; console.log(arr.indexOf(5));//查数组下标,若没有这个值,则返回 -1 var b = arr.slice(1,3); console.log(b);//[2,3] console.log(arr);//[1,2,3,4,5] </script> ~~~ ## 6.splice(需掌握) ~~~ <script> /* arr.splice(index,howmany,item) 增加 arr.splice(index,howmany) 删除 index -->必须,整数,规定添加或者删除的位置,使用负数,从数组尾部规定位置。 howmany-->必须,要删除的数量,如果为0,则不删除项目。 item-->可选,向数组添加的新项目。 */ var arr = [1,2,3,4,5]; /* arr.splice(2,0,8); console.log(arr); */ arr.splice(1,2); console.log(arr);//[1,4,5] </script> ~~~ ## 7.min、max **...arr展开数组** ~~~ var arr = [1,2,3,4,5]; //...arr展开数组 var max = Math.max(...arr); console.log(...arr); console.log(max); console.log(Math.min(...arr)); ~~~ ## 8.join ~~~ /* join 通过特定的分割符,将数组拼接成字符串 */ var arr = ["green","red","yellow"]; var str = arr.join(","); console.log(str); ~~~ ## 9.数组排序 ~~~ var arr = [2,0,5,4,7,8,1,2]; var copyarr = [...arr]; var d = arr.sort(function(a,b){ return a-b; }) var e = copyarr.sort(function(a,b){ return b-a; }) console.log(d); console.log(e); console.log(arr); ~~~ ## 10.prototype * 该属性使您有能力向对象添加属性和方法 ~~~ <script> //在原型上定义一个方法,所有实例化的对象都共享这个方法 Array.prototype.max = function(arr){ return Math.max(...arr); }; var arr = [1,2,3,4]; console.log(arr.max(arr)); </script> ~~~ ## map()遍历 map(value,index,array){} **参数:value数组中的当前项,index当前项的索引,array原始数组;** ~~~ //有返回值,可以return 出来。 var ary = [12,23,24,42,1]; var res = ary.map(function (item,index,input) { return item*10; }) console.log(res);//-->[120,230,240,420,10]; 原数组拷贝了一份,并进行了修改 console.log(ary);//-->[12,23,24,42,1]; 原数组并未发生变化 ~~~