day6数组的概念

数组是什么

所谓数组,就是将多个元素按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。

为什么要使用数组

储存多个数据,方便使用

数组的定义

数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整

数组的创建

var arr = [];//创建一个空数组
var arr2 = [1,2,3];//创建一个有三个元素的数组
2、采用构造函数创建

a、var arr1 = new Array();//创建空数组
c、var arr3 = new Array(5,4,3,2,1);//创建数组并初始化

获取数组元素

数组的下标取值范围为:0-arr.length-1
// 格式:数组名[下标] 下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = [‘red’, ‘green’, ‘blue’];
arr[0]; // red
arr[2]; // blue
arr[3]; // 这个数组的最大下标为2,因此返回undefined
arr[arr.length-1] ;//blue

数组的长度

length:获取数组内元素的个数
// 格式:数组名[下标] 下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = [‘red’, ‘green’, ‘blue’];
console.log(arr.length);

遍历数组

遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。

for循环和 for in循环

数组遍历的基本语法:

for(var i = 0; i < arr.length; i++) {
// 数组遍历的固定结构
}

for (变量 in 对象)
{
在此执行代码
}

数组中新增元素

数组中元素的修改

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [“red”, “green”, “blue”];
// 把red替换成了yellow
arr[0] = “yellow”;
// 给数组新增加了一个pink的值
arr[3] = “pink”;

数组元素的排序

sort():对数组的元素进行排序。

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [1, 4, 3,2];
// 查找元素 red
document.write(arr.sort());

数组元素的检测

arr instanceof Array
Array.isArray(arr);
检测arr是否为数组类型,是的话返回true,不是的话返回false

数组元素的查找

indexOf() 方法可返回某个指定的元素在数组中首次出现的位置,如果没有找到则返回-1

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [“red”, “green”, “blue”];
// 查找元素 red
console.log(arr.indexOf(“red”)); //0
console.log(arr.indexOf(“green”)); //1
console.log(arr.indexOf(“blue”)); //2
console.log(arr.indexOf(“haha”)); //-1
console.log(arr.indexOf(“ooo”)); //-1

数组的增删改查方法

push()向数组的末尾添加一个或更多元素。
unshift()向数组的开头添加一个或更多元素。

pop()删除数组的最后一个元素。
shift()删除数组的第一个元素。

splice()从数组中添加或删除元素。
在使用splice截取数组的时候,传入的参数不同,要注意需要取返回值,还是取改变后的原数组

indexOf()查找元素在数组中第一次出现的位置。
lastIndexOf()查找元素在数组中最后出现的位置。

数组转字符串

join()把数组的所有元素放入一个字符串。
toString()把数组转换为字符串。

数组的排序

sort()对数组的元素进行排序。

  1. 不传参数,将不会按照数值大小排序,按照字符编码ASCII的顺序进行排序

    var arr = [‘General’,‘Tom’,‘Bob’,‘John’,‘Army’];
    var resArr = arr.sort();
    console.log(resArr);//输出 [“Army”, “Bob”, “General”, “John”, “Tom”]

     var arr2 = [30,10,111,35,1899,50,45];
     var resArr2 = arr2.sort();
     console.log(resArr2);//输出   [10, 111, 1899, 30, 35, 45, 50]
    
  2. 传入参数,实现升序,降序

    var arr3 = [30,10,111,35,1899,50,45];
    arr3.sort(function(a,b){
    return a - b;
    })
    console.log(arr3);//输出 [10, 30, 35, 45, 50, 111, 1899]

     	var arr4 = [30,10,111,35,1899,50,45];
     	arr4.sort(function(a,b){
     		return b - a;
     	})
     	console.log(arr4);//输出 [1899, 111, 50, 45, 35, 30, 10]
    
数组的拼接

concat()连接两个或更多的数组。

数组元素的去重

// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [1, 3, 5,7,2,1,3,4,5,6];
// 定义一个空数组
var newArr = [];
// 循环遍历旧数组
for(var i =0;i<arr.length;i++){
// 如果新数组内没有找到元素,就放入到新数组中
if(newArr.indexOf(arr[i])==-1){
newArr.push(arr[i]);
}
}
console.log(newArr);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值