javaScript 第三天 数组概念及其常见方法

数组的概念

数组是值的有序集合。每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。元素允许是数值、boolean、undefined、null、对象或数组(所有类型),索引最大可以是2^31-1。
1.数组的创建
大体两种方式
a.使用数组直接量
b.调用构造函数Array()

var empty=[];
var prims=[1,2,3];
var misc=[1.2,true,2];
var a=new Arrays(12);

2.数组的读写
读:使用[]操作符来访问数组中每一个元素
写:使用=操作符来赋值
数组通过[](方括号)访问数组元素就像访问对象的属性一样,方括号内必须为字符串,而数组访问元素过程中会将数字索引转换成字符串。

let a=[1,2,3,4];
let value=a[0];//value=1
a[0]=3;
value=a["0"];//value=3

**注意:**可以使用负整数或非整数来索引数组,这中情况下,数值转为字符串,字符串作为属性名来用。并返回undefined。

数组中的方法

join()

Array.join()方法将数组中所有元素都转化为字符串并拼接在一起,返回最后生成的字符串,括号内可以指定分隔符进行连接,默认是逗号。

  var a = [1, 2, 3, 1];
  var b = a.join("");//b为"1231"
  a=[1,2,[1,2],3];
  b=a.join("");//b为"12123"
reverse()

Array.sort()方法将数组中的元素进行排序并返回排序后的数组。不指定参数时,数组元素按照字母表顺序排序(非字符串转为临时字符串进行比较),包含的undefined元素放在数组尾部 ;为其指定一个参数时,参数必须是一个比较函数。

let a=[4,111,3,22];
a.sort();//a变为[111,22,3,4];
 a.sort(function(x,y){
return x-y;
});//a变为[3,4,22,111]

concat()

Array.concat()方法创建并返回创建一个新数组,它的元素包括调用concat()的原始数组的元素和concat()的每一个参数。

let a=[1,2,3];
let b=[4,[5,6]];
a.concat(b);//返回的是【1,2,3,[4,5]],a,b不改变
slice()

Array.slice()方法返回指定数组的一个片段或子数组。第一个参数指片段的起始位置,第二个参数指片段的终止位置(可以只指定一个参数(起始位置))。参数可以是负数,表示从数组最后一个位置开始数。

let a=[1,2,3,4];
a.slice(2);//返回[3,4],a不改变
a.slice(0,2);//返回[1,2]
a.slice(1,-1)//返回[2,3]

splice()

Array.splice()是在数组中插入或删除元素的通用方法。调用过程会修改元素组并会返回删除的数组。spicle()前两个参数指定需要删除的数组片段,第一个参数指的是删除和插入的起始位置,第二个参数指删除元素的个数(可以只指定一个参数(插入和删除的起始位置)),紧随其后的是任意个数的参数指定了需要插入到数组中的元素,其插入位置为splice()的第一个参数。

let a=[1,2,3,4];
a.splice(3//返回[4],a变为[1,2,3]
a.splice(2,012)//返回[],a变为[1,2,3,1,2]
push()和pop()

push()在数组尾部添加一个或多个元素,并返回数组的新长度。pop()删除数组的最后一个元素,减少数组的长度并返回删除的值。

var stack=[];
stack.push(1,2);//返回2,stack变为[1,2]
stack.pop();//返回2,stack变为[1]
stack.push([1,2]);//返回2,stack变为[1,[1,2]]
unshift()和shift()

unshift()在数组头部添加一个或多个元素(参数为多个时,一次性插入),并将已经存在的元素移动到更高的索引位置以获得足够的空间,并返回数组的新长度。shift()删除数组的第一个元素并将其返回。

var a=[];
a.unshift(1,2);//返回2,a变为[1,2]
a.shift();//返回1,a变为[2]
toString()和toLocaleString()

toString()将数组每个元素转为字符串并且输出用逗号分隔的字符串列表。toLocaleString()是toString()本地化版本。
**注意:**输出不包括方括号或其它任何形式的包裹数组值的分隔符。

[1,2,3].toString();//生成'1,2,3'
[1,[2,3]].toString();//生成'1,2,3'
forEach()

forEach()方法从头至尾遍历数组,为每一个元素调用指定的函数。传递的函数作为forEach()的唯一参数,该函数有两种形式function(value){}和function(value,index,array){}。

 var data=[1,2,3,4];
 let sum=0;
 data.forEach(function(x){
 sum+=x;
});
data.forEach(function(v,i,a){
a[i]=v+1;
});//a变为[2,3,4,5]
map()

map()方法将调用的数组每一个元素传递给指定的函数,并返回一个数组,它包含给函数的返回值。

let a[1,2,3];
let b=a.map(function(v){
return v*v;
});//b变为[1,4,9]
filter()

filter()方法返回的数组元素是调用的数组的一个子集。

let a=[1,2,3,4];
let smallValues=a.filter(function(x){
return x<3;
});//smallValues变为[1,2]
some()和every()

every()和some()方法是数组的逻辑判断:他们对数组元素应用指定的函数进行判定,返回true或false。
**注意:**在空数组上调用时,every()返回true,some()返回false。

 let a=[1,2,3]
 a.some(function(x){
 return x>3
 });//返回false
 a.every(function(x){
 return x<4
 });//返回true
reduce()和reduceRight()

reduce()和reduceRight()方法使用指定的函数将数组元素进行组合,生成单值。

let a[1,2,3,4];
let sum=a.reduce(function(x,y){return x+y},0);//sun为10
let b[2,3,4];
let big=a.reduceRight(function(x,y){return Math.pow(y,x)});
//big为2^(3^4)
indexOf()和lastIndexOf()

indexOf()和lastIndexOf()搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引或者如果没有找到就返回-1.indexof()从头开始搜索,而lastIndexOf()从尾部开始搜索。

let a=[1,2,3,4];
a.indexOf(6);//返回-1
a.lastIndexOf(4);//返回3
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扎克风暴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值