js数组(Array)
数组的概念
- 一组数据的集合,其中每个数据被称作元素,在数组中可以存放任意类型的元素。
创建数组
-
var arr = new Arry();//创建了一个空的数组 new创建
-
var 数组名 = [1,2,3,4,5]//利用数组字面量[ 多使用 ]
-
数组里面的数据用逗号分隔
-
数组里的数据称为数组元素
数组的使用
-
数组名[索引]
-
索引(下标):用来访问数组元素的序号 从0开始
遍历数组
-
var arr = [1,2,3,4] for (var i = 0;i < 3; i++ ){ console.log(arr[i]) }
-
for (let item of arr){ str += item + '\t' }
-
var str = '' var a = arr.forEach(function(val,index){ str += val + '\t' })
-
let temp = arr.map(function(item){ let t = item * 2 return t })
-
let str = '' for(let i in arr){ str += arr[i] + '\t' }
-
索引号再递增
-
遍历就是把数组中的每个元素从头到尾的访问一次
-
数组索引号从零开始
-
输出些arr 的第i个 i计数器当索引号来用
数组长度
-
let var = [1,2,3,4,5,6,7] for (var i = 0;i < arr.length; i++ ){ console.log(arr.[i]) }
-
数组的长度是元素的个数
-
arr.length是动态检测数组元素的个数
案例
-
求数组平均值
var num = [2,6,1,7,4] var sum = 0 var average = 0 for (var i = 0; i < num.length; i++){ sum += num[i]//num 的第i个 } average = sum / num.length console.log(sum,aversge)
-
求数组中的最大值
var arr [2,6,1,4,5,15] let max = arr[0] for (var i = 1 ; i < arr.length; i++){ if(max < arr[i]){ max = arr[i] } } console.log('该数组的而最大值是'+ max)
-
数组转换为字符串
var = ["red"",grenn","blue"] var str = ''//空的字符串 var sep = '!'//改变分隔符 for (var i = 0; i <arr.length;i++){ str += arr[i] + sep//每次加一个分隔符 } cosole.log(str)
数组中新增元素
-
修改length长度,来实现数组扩容
-
var = ["red"",grenn","blue"]; console.log(arr.length); arr.length = 5;//把数组的长度修改为5 现有5个元素 empty * 2//俩个空元素 输出为endefined
-
修改索引号 追加数组元素
var = ["red"",grenn","blue"]; arr[3] = 'pink'//将pink作为第三位放入arr数组 arr[1] = 'black'
-
arr数组中的元素可以被替换
-
不要给数组名赋值,会覆盖掉数组元素
-
案例:新增10个整数
var arr = [] for(var i = 0; i < 10 ; i ++){ arr[i] = i + 1 } console.log(arr)
-
筛选数组案例
var arr = [2,0,6,1,77,0,52,0,25] var newArr = [] var j = 0; for(var i = 0;i < arr.length; i++){ if(arr[i] > 10){ newArr[j] = arr[i]//新数组应该从零开始依次递增 j++; } } console.log(newAree)
-
方法二
var arr = [2,0,6,1,77,0,52,0,25] var newArr = [] newAree.length//0 for(var i = 0;i < arr.length; i++){ if(arr[i] > 10){ newArr[newAree.length] = arr[i]//新数组应该从零开始依次递增 } } console.log(newAree)
数组案例
-
删除指定数组元素(数组去重)
var arr = [2,0,6,1,77,0,52,0,25,7] let arr1 = [] for(i = 0 ; i < arr.length ; i ++){ if(arr1.indexOf(arr[i]) === -1 ){ arr1.push(arr[i]) } } console.log(arr1)
-
翻转数组
var = ["red"",grenn","blue","pink","purple"]; var newArr = [] for(var i = arr.length - 1 ; i >=0 ; i--){ newAree[newAree.length] = arr[i] } console.log(newAree)
-
数组排序(冒泡排序)
var arr = [5,4,3,2,1] //外层循环 for(var i = 0; i < arr.length -1 ; i++){ //里层循环 for(var j = 0 ; j <= arr.length - i -1;i-- ) if(arr[j] > arr[j + 1]){//小于号取反 var temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } }
数组的方法
-
instanceof
arr instanceof Array //结果为布尔值 //有上下文限制
-
Array.isArray()
arr.isArray()//返回值为布尔值
-
copyWithin()
let arr
reset = () => arr = [0,1,2,3,4,5,6,7,8,9]
reset()
arr.copyWithin(0,5)
//从arr中复制索引5开始的内容,插入到索引0开始的位置
arr = [5,6,7,8,9,5,6,7,8,9]
- fill()填充数组
let let arr = new Array(5);
//创建空数组length为5
arr.fill(0);
//填充5个0
arr.fill(0, 2);
//从位置2开始填充0
arr.fill(0, 2, 3);
//从位置2到3填充0
console.log(arr);
//打印
- join()
let arr = [1,5,7]
let str = arr.join('-')
-
push()末尾添加一个或多个元素
-
pop()数组的末尾删除一个元素
-
shift()数组开头删除一个元素
-
unshift()在数组首部插入元素
-
cancat()连接后形成一个新的数组 原数组不变
-
reverse 反转数组
-
find()
-
10.every 返回布尔值 检测数组元素的每个元素是否都符合函数内的条件 函数参数返回值是否都为ture 数组.every(function(){return })
-
slice()函数:切片函数 接收一个或俩个参数,从数组当中截取一部分数据
//函数的返回值是数组
let t = arr.slice(3)