JavaScript知识点总结(四)

关联数组

1.关联数组
以字符串作为元素的下标的数组,就是关联数组。
以数字作为下标的数组,就是索引数组。
$array=[“name”=>“tom”]
2.js中的关联数组
var array=[];
array[“字符串下标”]=值;
注意:
1.关联数组中,字符串下标的内容是不记录到length中的
2.只能通过 字符串 做下标取值
3.for…in
遍历出任意数组中的字符串下标 以及 索引下标
语法:for(var 变量 in 数组名){
//变量:字符串下标 或 索引下标
}

冒泡排序

1.什么是冒泡
排序算法之一,将一组数据进行排序,小的数字往前排,大的数字往后排。
两两比较,小的靠前。
var arr=[9,23,6,78,45]; 5个数 比4轮
第一轮:比较了4次
第二轮:比较了3次
第三轮:比较了2次
第四轮:比较了1次
1.n个数字,则比较n-1轮
for(var i=1;i<arr.length;i++)
2.轮数增加,比较的次数较少
for(var j=0;j<arr.length-i;j++)
第一轮 5 -1=4次
第二轮 5 -2=3次
第三轮 5 -3=2次
第四轮 5 -4=1次
两两比较 小的靠前
if(arr[j]>arr[j+1])

     arr[j]^=arr[j+1];
     arr[j+1]^=arr[j];
     arr[j]^=arr[j+1]

数组的常用方法

toString();

作用:将数组转换为字符串,并返回转换后的结果。
语法: var str=数组对象.toString();

join()

作用:将数组的元素通过指定的字符连接到一起,并返回连接后字符串
语法:var str=数组对象.join(“字符”);

concat()

作用:拼接两个或更多的数组,并返回拼接后的结果
语法:var res=数组对象.concat(数组1,数组2,…);

数组的函数

slice()

作用:截取子数组,从指定的数组中,截取几个连续的元素组成一个新的数组
语法:var arr=数组名.slice(start,[end]);
start:从哪个下标位置处开始截取,取值为正,从前向后算;
取值为负,从后向前算 0 1 2
var arr=[“中国”,“美国”,“俄罗斯”];
-3 -2 -1
end:指定结束位置处的下标(不包含自己),该参数可以省略,
如果省略的话,就是从strat开始一直截取到尾。

splice()

作用:允许从指定数组中,删除一部分元素,同时再添加一部分元素
语法:arr.splice(start,count,e1,e2…);
start:指定添加或删除元素的起始下标
count:指定要删除元素的个数,取值为0表示不删除
e1:要增加的新元素,可以多个
返回值:返回一个由删除元素所组成的数组

reverse()

作用:将一个数组反转
语法:数组名.reverse();
注意:该函数会改变当前数组的内容

sort()

作用:排序,默认情况下按照数组元素们的Unicode码进行升序排序。
语法:数组名.sort();
特殊:
允许自定义排序函数,从而实现对数字的升序或降序的排序
ex:
var arr=[12,6,4,115,78];
//排序函数(升序)
function sortAsc(a,b){
return a-b;
}
arr.sort(sortAsc);
原理:
1.指定排序行数sortAsc,定义两个参数a和b,表示数组中相邻的两个数字
2.将排序函数指定给数组sort()函数,数组会自动传递数据到sortAsc()中,
如果sortAsc()的返回值>0,则交互两个数字的位置,否则不变。
使用函数完成升序排序:
arr.sort(
function(a,b){ //匿名函数
return a-b;
}
)

进出栈操作

JS是按照标准的“栈式操作”来访问数组
所有的“栈式操作”的特点就是“后进先出”

push()

入栈,在栈顶添加指定的元素,并返回新数组的长度
var arr=[10,20,30];
//向栈顶增加新的数据40
var len=arr.push(40); //4

pop()

出栈,删除(删除栈顶数据)并返回删除元素
注意:改变原来数组

shift()

删除数组头部(第一个)的元素并返回删除元素
语法:数组名.shift();

unshift()

在数组的头部(第一个)元素的位置处,增加元素,返回的是数组的长度。
语法:数组名.unshift(增加的数据);

二维数组
什么是二维数组

在一个数组中的元素又是一个数组,也可以称为:数组的数组。

二维数组的使用

var names=[
[“孙悟空”,“猪八戒”,“沙和尚”],
[“大乔”,“小乔”,“曹操”],
[“林黛玉”,“贾宝玉”,“薛宝钗”]
];
//打印输出“小乔”
console.log(names[1][1]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值