一.数组的概念 一组数据,数据的组合 那些数据的组合,只要是数据(数据),就可以放在数组中 数组的意义: 可以同时操作多个数据 二.数组的创建和使用 1. 创建: 字面量:var arr = [] 构造函数:var arr = new Array(); var arr = [234,"hello"]; var arr2 = new Array(233,"hello") console.log(arr) // 234 hello console.log(arr2) // 234 hello console.log(arr == arr2) // false 任何两个对象都不相等 任何两个对象都不相等 区别:当只有一个数据,还是数值时,字面量会在数组中保存这个值 构造函数会将这个数值作为长度 var arr = [6]; var arr2 = new Array(6); console.log(arr); //[6] console.log(arr2); // [empty*6] 当new Array(1,2,3)-->[1,2,3] console.log(arr.length) //1 console.log(arr2.length) //6 三.数组的操作: 1. 索引操作: var arr = ["hello","world"]; 增:给并不存在的索引赋值 arr[5] = 1; console.log(arr[5]); //1 console.log(arr); //["hello","world",empty*3,1]; 删: console.log(arr.length) //2 arr.length = 1; console.log(arr) ["hello"] 改: console.log(arr[0]); //hello arr[0] = "aaaa" //【】将第几位的字符改变 console.log(arr) //["aaaa","world"] 查:数据的遍历 console.log(arr[0]) //hello console.log(arr[1]) //world for(var i = 0;i<arr.length;i ){ console.log(arr[i]) //全部打印出来 } 2.方法操作: var arr = ["hello","world"]; console.log(arr) //["hello","world"] 方法:对象中的函数属性 push:在数组的最后增加 arr.push(3,4,5,6,7) console.log(arr) //["hello","world",3,4,5,6,7] pop:删除数组的最后一位数据 arr.pop(); console.log() //["hello"] unshift:在数组的开头增加 arr.unshift(3,4,5,6,7) console.log(arr) //[3,4,5,6,7,"hello","world"] shift:删除数组的第一位数据 arr.shift(); //["world"] var arr = ["hello","aa","bb","cc","dd","world"]; splice(start,num,replaceDate1,replaceDate2,.........)至少有三个 arr.splice(m,n) //m 【0,1,2.。。】 arr.splice(2,1) //删除指定位置 ["hello","aa","cc","dd","world"] arr.splice(2,1,"js") //删除并替换一个或多个 ["hello","aa","js","dd","world"] arr.splice(2,1,"js","ESCA") arr.splice(2,0,"js",...) //在指定位置新增一个或多个 ["hello", "aa", "js", "bb", "cc", "dd", "world"] //(m,n)m 第m个位置开始删除 删除n个 n个字符 “ ”删除的位置添加新元素 slice(m,n):截取,从索引m,截取到索引n前一个 var arr = [5,61,17,28,9,19,16,18]; console,log(arr); var a = arr.slice(2,6); //[17,28,9,19] var a = arr.slice(3,7); //[28,9,19,16] console.log(a) sort():字符的排序,逐位比较 arr.sort(function(a,b){ return a-b; //降序 [5, 9, 16, 17, 18, 19, 28, 61] return b-a; //升序 [61, 28, 19, 18, 17, 16, 9, 5] }); console.log(arr) 四.数组的操作方法 方法:函数,处理数据 功能:观察提现 处理数据:找返回值 数组的方法: 功能:关注其执行结果 操作数据类:关注其返回值 功能方法没有必要关注返回值 但是功能方法可以有返回值 *随机数:Math.random() //Math.radom()随机抽取0~1的小数// for(var i = 0;i<10;i ){ Math.round()遇到小数四舍五入 , parseInt()遇到小数则向下 console.log(Math.round(Math.random()*(10-1) 1)) } a,,b无需按大小顺序编写 function random(a,b){ Math.round(Math.random()*(a-b) b); } i为次数 结果得到a~b i个随机数 五.数组的排序:sort(function(){}) 数组的排序方式 冒泡排序:两两比较 var arr=[5,7,2,9,1] //0-1 1-2 2-3 3-4 0~length-1 -0 原本的次数 //0-1 1-2 2-3 (0~length-1) -1 少执行1次 //0-1 1-2 (0~length-1)-2 //0-1 (0~length-1)-3 长度 length 比了length-1轮 length-1行 多行多列 循环嵌套 次数,外层循环控制行 length-1 for(var i=0;i<arr.length-1; i ){ 内层循环控制列 随着i次数增大 j执行次数 3210 for(var j=0;j<arr.length-1 -i){ if(arr[j]>arr[j 1]){ ---->两两相比 var ls=arr[j]; arr[j]=arr[j 1]; ------>互换位置 arr[]j 1] = ls; } } } console.log(arr); 冒泡排序 选择排序:将第一位和后面所有相比较,最小的交换在第一位 一轮比下来,第一位数最小 var arr=[6,2,9,1,7,3] //第一轮 6和后面所有的数比较 最小的2在前面 0-1 0-2 0-3 0-4 0-5 0-length-1 1-2 1-3 1-4 1-5 1-length-1 2-3 2-4 2-5 2-length-1 3-4 3-5 3-length-1 4-5 4-length-1 多行多列 length-1行(外层循环-1) for(var i=0;i<arr.length-1;i ){ var min = arr[i]; // 1. 假设最小值 var minIndex = i; //2. 保存索引 j随着i增加而增加 0到4 5次 for(var j=i 1,j<arr.length(length不能-1 ,j跟随i);j ){ 当j=i=0时,会发生和自己比较,但不交换,多比了一次,因此j=i 1 if(min>arr[j]){ //判断最小值是否为真的最小值 当i=0,j取0~5 min = arr[j]; //3.交换 获取真正的最小值 minIndex = j; // 位置 获取真正最小值的索引 } } arr[minIndex] = arr[i]; // 把第一位拿出来放在最小值 arr[i] =min; //把最小值拿出来放在第一位 } console.log(arr) 六.数组的分类: 1.当一个数组中都是字符时,这种数组叫字符数组 var arr = ["a","b","c","d"] 2.当一个数组中都是数值时,这种数组叫数值数组 var arr = [2,3,4,5,6,7] 3.当一个数组中都是数组时,这种数组叫数组数组(二维数组) 多维数组 var arr = [["a",23,true],[67,"hello"],[false,123],["a",789]]; console.log(arr[2][1]) ---->123 4.当一个数组中都是对象时,这种数组叫对象数组(json数组) json是一种格式,目前只是借用这个名字,以此说明这个格式,而跟json自身没有关系 var arr = [{name:"admin"},{name:"zhangsan"},{name:"lisi"}] console.log(arr[1].name) ------>zhangsan 来源:https://www./content-4-582501.html |
|