第八节:数组以及其常用方法

一、认识数组

1.数组的概念:

数组(array)是一个有序的数据集合。说白了,数组就是一组数。
数据是一组数据的集合,数组里面可以放任意的数据类型

二、数组的创建

1.通过字面量创建

var arr = [16,33,23,12,53];

这是定义数组最简单的方法,里面用逗号隔开了很多值,最后一项没有逗号
变量arr就是一个数组变量,里面存储的不是一个数字,而是一组数。可以使用下标,或称为索引值index来访问数组中的某一个项,下标从0开始。

console.log(arr[0]);   //输出16
console.log(arr[1]);   //输出33
console.log(arr[4]);   //输出53

注意点:数组中保存的值不仅仅可以是数字,也可以使字符串、对象、数组、函数等复杂数据类型

2.通过构造函数创建

创建一个空数组

var arr = new Array();

创建指定项的数组

var arr = new Array(10);  //创建一个长度为10的空数组

创建有具体内容的数组

var arr = new Array("张三","李四","王五");

注意:无特殊情况建议使用字面量创建数组

三、数组的属性

1.langth属性

length,英语是长度的意思,表示这个数组的项的个数
通过点方法可以调用数组的长度属性

var arr = [34,563,4576,334,46,433];
alert(arr.length);      //6,数组里面一共有6项

2.数组的索引

数组的索引是从0开始计算的,通过[索引]可以获取

var arr = [34,563,4576,334,46,433];
arr[1];//此时表示的应该是563,并不是34

四、数组的操作方法

1.push()尾插:添加一项在数组的最后

//语法:数组.push("要添加的值") 1.会改变原本的数组;2.返回值是新添加的数组长度
var arr = ["张三","李四","王五"];
var res =  arr.push("王小二");
console.log(arr);  // 添加之后的原本数组
console.log(res);  // 添加之后的数组的长度;

2.pop()尾删:删除数组的最后一项

//语法:数组.push("要添加的值") 1.会改变原本的数组;2.返回值是被删除的元素
var arr = ["张三","李四","王五"];
var res =  arr.pop();
console.log(arr);  // 添加之后的原本数组
console.log(res);  // 返回被删除的元素;
//野路子做法
arr.length -= 1; //默认会删除最后一项
console.log(arr);//

3.unshift()头插:在第一项添加元素

//语法:数组.unshift("要添加的值") 1.会改变原本的数组;2.返回值是被删除的元素
var arr = ["张三","李四","王五"];
var res =  arr.unshift("王小二");
console.log(arr);  // 添加之后的原本数组
console.log(res);  // 返回被删除的元素;

4.shift()头删:删除数组的第一项

//语法:数组.shift("要添加的值") 1.会改变原本的数组;2.返回值是被删除的元素
var arr = ["张三","李四","王五"];
var res =  arr.shift();
console.log(arr);  // 添加之后的原本数组
console.log(res);  // 返回被删除的元素;

5.splice:在指定位置添加或者删除数组的元素

//语法:splice(要添加或者删除的索引值,要删除的个数,要添加的值)
//1.会改变原数组 2.返回值是删除的元素
//删除功能:第一个参数是要删除的索引值,第二个是删除的个数,删除不需要第三个参数
var arr = ['张三', '李四', '王五', '王小二'];
var res = arr.splice(1,1)
console.log(arr);// ['张三',  '王五', '王小二']
console.log(res);// ["李四"]

//添加功能:第一个参数是要添加的索引位置,第二个参数是0,第三个是要添加的值
var arr = ['张三', '李四', '王五', '王小二'];
var res = arr.splice(1,0,"新的值")
console.log(arr);
console.log(res);//返回空数组,因为没有删除的值

//替换操作
var res = arr.splice(1,1,"新的值");  // 删除了索引是1的值 ,然后又添加了一个新值 ;
console.log(arr);
 console.log(res);

6.reverse 反转数组

//语法:数组.reverse();1.原本的数组会被改变 2.返回值是被反转的数组
var arr = [1,2,3,4];
var res = arr.reverse();
console.log(res);
console.log(arr);

7.join:把数组通过特殊符号连接成字符串

//语法:数组.join("链接符号") 1.不会改变原数组 2.返还值是连接的新字符串
var arr = [1,2,3,4];
var res = arr.join("")
console(res); // 字符串"1234"

8.indexOf:会查找数组元素的索引

// 1.不会改变原本的数组 2.返还值就是查找元素的索引,如果没有查找到就会返还-1
var arr = ['张三','李四','王五'];
var res =  arr.indexOf('李四');
console.log(res);
var arr = [1, 3, 60];
function has(arr, num) {
     if (arr.indexOf(num) == -1) {
         //    证明数组里没有num这个值 
     return false;
    } else {
       //    证明数组里有 num这个值
     return true;
    }
 }
 console.log( has(arr,6));

9.concat:把两个或者多个数组,连接成一个数组

语法 :  新生成的数组 =   数组1.concat(数组2,数组3,数组4);
var arr1 = [1,2,3];
var arr2  = [4,5,6];
var arr3 = [7,8];
var newarr = arr1.concat(arr2,arr3);
console.log(newarr);

10.sort:会把数组做成正序 或者倒叙排列:数字排列

//语法:arr.sort(function(a,b){return a-b })
// 1.不会改变原本数组 2. 返还值是排序号的数组 3. 如果是返还是a-b那么是正序
// 4.如果函数内返还是b-a 那么 新的数组是倒序 ; 
 var arr = [3,1,5,7,9];
 var newarr = arr.sort(function(a,b){  // 回调函数 callback
    // return a-b;
    return b-a;
 })
 console.log(newarr);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值