1.什么是数组?
数组:(Array)是一种数据类型,属于引用数据类型。
作用:在单个变量名下存储多个数据
2.声明语法
let 数组名 =[数据1,数据2......];
注意事项:
数组是按照顺序保存(是有序的),所以,每一个数据都有自己的编号。
编号从0开始,数据的编号经常称为索引或下标。
数组可以存储任意类型的数据。
3.数组元素取值
数组名[索引];
<script>
//创建数组- 初始化数组
let names =['张三','李四','王五'];
//获取数组元素
alert(names[0]);
</script>
4.遍历数组
把数组中每个数据都访问到。
使用for循环遍历数组
数组的长度:通过数组.length属性获取。
<script>
//创建数组- 初始化数组
let names =['张三','李四','王五'];
//获取数组元素
// alert(names[0]);
for(let i =0;i<names.length;i++){
alert(names[i]);
}
</script>
5.demo 求数据的和和平均数,最大值和最小值
<script>
let arr = [15, 20, 23, 22];
let sum = 0;
let maxNum = arr[0];
let mixNum = arr[0];
//如果要比较大小,可以不从0开始,重复比较了,但是这里笔者写在一起了
for (let i = 0; i < arr.length; i++) {
sum += arr[i];
if (arr[i] < mixNum) {
mixNum = arr[i];
}
if (arr[i] > maxNum) {
maxNum = arr[i];
}
}
console.log("数组的和:" + sum);
console.log("数组的平均数:" + sum / arr.length);
console.log("数组的最大值:" + maxNum);
console.log("数组的最小值:" + mixNum);
</script>
6.操作数组-增删改查
数组的本质就是数据集合,增删改查。
查询语法:
数组[索引];
如果查询不到就会返回undefined
修改数组元素
数组[索引] = 新值;
返回值:如果下标不存在,则是新增加一个元素,并且修改数组的长度。(这样做尽量避免)
新增元素
方法一:数组.push(新增元素);
作用:将一个或者多个元素添加到数组的末尾。
返回值:该数组的新长度,会修改原数组
<script>
//数组元素的新增
let names =['张三','李四','王五'];
//方法一:push
names.push('赵六');
names.push('姚明','刘翔');
console.log(names);
//['张三', '李四', '王五', '赵六', '姚明', '刘翔']
</script>
方法二:数组.unshift(新增数据);
作用:将一个或者多个元素添加到数组的开头。
返回值:该数组的新长度,会修改原数组
<script>
//数组元素的新增
let names =['张三','李四','王五'];
//省略方法一;。。。
//方法二:unshift
names.unshift('张飞');
names.unshift('刘备','关羽');
console.log(names);
//['刘备', '关羽', '张飞', '张三', '李四', '王五', '赵六', '姚明', '刘翔']
</script>
删除元素
方法一:数组.pop();
作用:从数组中删除最后一个元素,修改原数组
返回值:该元素的值
方法二:数组.shift();
作用:从数组中删除第一个元素,修改原数组
返回值:该元素的值。
//数组元素的删除
//方法一:数组名.pop();
names.pop();
console.log(names);
//方法二:数组名.shift();
names.shift();
console.log(names);
数组.splice()方法 可以添加也可以删除数组元素。
说明:可以从指定位置删除或者增加数组的数组元素,注意它修改原数组。
做删除使用:splice(start,deleteCount);
返回被删除的元素。
start:起始位置,指定修改的开始位置(从0计数)
deleteCount:删除个数,表示要移除的数组元素的个数,可选的。如果省略则默认从指定的其实位置删除到最后。
做增加使用:splice(start,deleteCount,item1....);
<script>
let names =['张三','李四','王五'];
//做删除使用
names.splice(0,2);
console.log(names);
//做增加使用
names.splice(1,0,'赵六','老七');
console.log(names);
</script>
7.demo 数组筛选
需求:将数组[10,23,5,12,84,65,11,12,36,0]中大于等于10的元素选出来,放入新数组中。
<script>
let arr = [10, 23, 5, 12, 84, 65, 11, 12, 36, 0];
let newArr = [];
for (let i = 0; i < arr.length; i++) {
if(arr[i]>=10){
newArr.push(arr[i]);
}
}
console.log(newArr);
</script>
需求:将数组[10,0,23,0,5,12,0,84,65,11,12,36,0]进行筛选,形成一个不包含0的新数组。
<script>
let arr = [10,0,23,0,5,12,0,84,65,11,12,36,0];
let newArr =[];
for(let i=0;i<arr.length;i++){
if(arr[i]!==0){
newArr.push(arr[i]);
}
}
console.log(newArr);
</script>
8.数组排序
数组.sort();方法可以排序
语法:数组.sort();会修改原数组
<script>
let arr = [15, 2, 65, 21, 333, 57, 1, 25, 69];
//升序排列
arr.sort(function(a,b){
return a-b;
});
console.log(arr);
//降序排列
arr.sort(function(a,b){
return b-a;
});
console.log(arr);
</script>
9.选择排序
原理:就是从第一个数开始,与后面所有的数组比较,找出最小(最大)的数,放在第一个位置。依次类推,每一个确定一个相对于这一轮最小(最大)的数。
核心:利用循环嵌套比较,根据索引号来进行交换变量
①:外层循环是一共进行几轮比较,一共进行数组长度-1次进行比较
for(let i=0;i<arr.length-1;i++)
把i作为最小值起始索引minIndex
②:里层循环是每一轮的比较来查找最小值
里层循环起始值是i+1个元素开始查找
for(let j=1;j<arr.length;j++)
进行比较的时候 ,发现最小的数组元素,把当前元素索引号给minIndex
③:如果minIndex和i位置不一致,则交换变量。
<script>
let arr=[11,8,22,15,3,31,20];
//1.循环嵌套的方式 外层循环 控制比较次数
for(let i =0;i<arr.length;i++){
//2.定义一个变量,这个变量保存假定的最小数组元素的index
let MinIndex = i;
//外层循环 拿着第一个数,和每一个数做比较
for(let j=i+1;j<arr.length;j++){
if(arr[j]<arr[MinIndex]) {
//如果假定的最小值,比当前这一项还大,那么就保存索引
MinIndex = j;
}
}
//4.交换位置
if(MinIndex !== i){
//如果最小值的索引不等于原来的索引,那么就证明拿到新的最小值
let temp =arr[MinIndex];
arr[MinIndex] = arr[i];
arr[i]=temp;
}
}
console.log(arr);
</script>
10.总结
以上文章是笔者的学习笔记,如果您在浏览或者运行代码的时候发现了错误,还请您在第一时间在评论区留言,笔者会在第一时间解决,谢谢。
标签:arr,元素,console,javascript,学习,let,names,数组 From: https://blog.csdn.net/weixin_54454406/article/details/139182799