JavavScript数组

一、介绍
概念:一组数据,可以是不同数据类型,但是一般建议存放一组数据类型

作用:储存一系列的值(如果没有数据,就是空数组)

为什么使用:可以储存一组数据,减少变量的定义,减少内存耗费

定义:是一个对象,只是对应的数据结构不同

数组具备length属性,length属性可以设置,可以获取数组下标,还具备下标,可以通过对应小标,指定对应元素

下标可以是变量和表达式

<script>
// 第一种 new关键字声明
var arr1 = new Array();//声明空数组
var arr2 = new Array(3);//指定数组长度
var arr3 = new Array(1, 2, 3);//包含数据
//数组对应元素查找
console.log(arr3[2]);
// 数组对应元素赋值
arr3[1] = 3;
console.log(arr3[1]);

// 第二种 直接使用[]定义
var arr4 = []
var arr5 =['a','b','c'];
console.log(arr5);
</script>

二、数组常用函数
1、栈方法:push() 和pop()
push() :接收任意参数,逐个添加到数组末尾

pop() :从数组末尾移除最后一个元素,减少数组length值,返回被移除元素

2、队列方法
push():与栈方法一致

shift():从数组前端移除第一个元素,并返回移除的元素

unshift():从前端加一个或者多个元素,返回数组长度

3、排序方法
reverse():逆向排序,返回的翻转后的数组还是原来的数组

sort():从小到大排序,原数组也被升序排序,但是排序顺序默认按照首字符的ASCII进行排序。不适用数字即number类型数据排序

可以指定一个function,里面携带俩个参数a,b,a-b为1,即正序,实例如下,可以使sort()排序按数字大小来拍(不知道为撒)

 

//sort
var arr8 = [22, 4, 11, 8, 6, 3, 7];
console.log(arr8.sort());
arr8.sort(function (a, b) {
return a - b;//a-b是正序
})
console.log(arr8);

实验代码:
//一个班级有小红小明小绿小蓝几个同学
//将他们使用一个变量进行存储打印第二位的名字修改小绿的名字为小黑
var arrs = ['小红' , '小明','小绿','小蓝']
console.log(arrs[1]);
arrs[2] ='小黑';
console.log(arrs[2]);
arrs.push('小兰')
console.log(arrs.length);
console.log(arrs.pop());

console.log(arrs.push('小蓝','小红'));
console.log(arrs.shift());
console.log(arrs.unshift('小黄'));

console.log(arrs.reverse());


var arr6 = [1,3,6,2,8,3]
console.log(arr6.reverse());
console.log(arr6.sort());

添加删除的综合案例

//定义一个数组 接收一个数据 如果对应的输入的是1的话 删除第一个元素
//弹窗 prompt
// 打印的删除为什么 再打印对应的数组
//如果输入的是2的话 就添加需要用户输入添加的元素 追加到后面
//如果输入的是3的话 就删除最后一个元素
//打印的删除为什么 再打印对应的数组
//如果输入的是4的话 就添加需要用户输入添加的元素 追加元素到第一个
function fn() {
var arr7 = ['hello', 'world', 'hello world']
var userInput = prompt();
switch (userInput) {
case '1':
var rmStr = arr7.shift();
console.log(rmStr);
console.log(arr7);
break;
case '2':
var inputAdd = prompt("输入要添加的元素")
console.log(arr7.push(inputAdd));
break;
case '3':
var rmStr = arr7.pop();
console.log(rmStr);
console.log(arr7);
break;
case '4':
var inputAdd = prompt("输入你要添加的内容");
arr7.unshift(inputAdd);
break;
default:
fn();
console.log("输入出错");
break;
}
console.log(arr7);
}
fn();

4、连接方法
concat方法slice方法返回的数组跟原本的数组不是一个对象但是里面的值或者对象他的地址是一样的(浅拷贝)

contact进行数组合并,返回值为一个新的数组

可以合并一个数组或者单个元素

var arr1 =[1,2,3]
var arr2 = [4,5,6]
var newArr = arr1.concat(arr2);
console.log(newArr);
console.log(newArr.concat(7));
截取
截取数组的某一段内容组成新的数组,不会影响原来的数组,参数为开始和结束的下标,不包含结束的下标

//截取数组的某一段内容组成新的数组,不会影响原来的数组
//参数为开始和结束的下标,不包含结束的下标
var sliceArr = arr1.slice(1,2)
console.log(sliceArr);
console.log(arr1);
join连接:连接为字符串,返回为string
var str = arr1.join();//默认“,”分割
var str1 = arr1.join('/')
console.log(str);
console.log(str1);
splice
//删除,开始下标,删除个数
var newArr1 = arr1.splice(0,2)
console.log(newArr1);
console.log(arr1);
//从下标1删除,直到最后
var newArr2 = arr2.splice(1)
console.log(newArr2);
console.log(arr2);

//将删除位置的数据替换
var newArr3 = arr2.splice(0,0,2,4,6,8,10)
console.log(newArr3);
console.log(arr2);
5、查找方法
根据对应值找下标

indexOf()查找第一次出现的位置,默认从下标0开始找,没有找到返回-1

lastIndexOf()从后往前找

var arr01 = [1,2,3,4,5]
//indexOf()查找第一次出现的位置,默认从下标0开始找,没有找到返回-1
console.log(arr01.indexOf(4));
console.log(arr01.indexOf(1,3));//下标3开始找

//从后往前找
console.log(arr01.lastIndexOf(1,2));
三、排序
————————————————
版权声明:本文为CSDN博主「是小o」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_49464663/article/details/126026831

posted @   小欧呀  阅读(89)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示