引言
内置对象,在JS中本身已经为我们程序员写好的对象。对于内置对象,我们直接使用就可以,不需要再定义。比如说:Date,Array,Math,Error,String
等,这里以Array的一些API为例子作介绍。
JS的数组基础:数组的创建与使用
数组Array的API
- sort() :
功能:自动排序,默认是升序排列
使用方法:sort(function(a,b){return a-b / b-a}
存在问题:只能通过第一位排列,没有降序
解决方法:使用回调函数进行规则设置,并实现降序
例:
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//数组排序(默认升序)
console.log(arr.sort());
//使用回调函数实现升序排列
console.log(arr.sort(function (a,b) {
return a-b;
}));
//使用回调函数实现降序排列
console.log(arr.sort(function (a,b) {
return b-a;
}));
从图中结果可以看到,遇到一些复杂的数时,单单调用sort排序存在问题。
因此sort()正确而推荐的使用方法是:结合使用回调函数
//使用回调函数实现升序排列
console.log(arr.sort(function (a,b) {
return a-b;
}));
//使用回调函数实现降序排列
console.log(arr.sort(function (a,b) {
return b-a;
}));
- slice()
功能:返回从原数组中指定开始下标到结束下标之间的项组成的新数组。即:把指定的下标范围截取下来,形成一个新数组
使用方法:slice(参数1(起始位置),参数2(结束位置)
例:
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//截取数组下标为二的位置到结尾的元素
console.log(arr.slice(2));
//截取数组下标为2 - 4的位置的元素
console.log(arr.slice(2, 4));
//截取数组长度-3的位置到结尾的元素 arr.length - 3 = 8-3 =5 即5-结束的元素
console.log(arr.slice(-3));
- splice()
功能:实现数组的删除,插入,替换,清空数组等
使用方法:
- 删除功能:
splice(参数1(要删除第一项的位置),参数2(要删除的项数))
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//删除数组中项数为2-4的元素
console.log("已删除的数组:"+arr.splice(2, 4));
console.log("arr:"+arr);
- 插入功能:
splice(参数1(起始位置),参数2(要删除的项数),参数3(要插入的项)
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//从当前数组的位置2开始插入11,22两个元素
arr.splice(2, 0, 11, 22);
console.log(arr);
- 替换功能:
splice(参数1(起始位置),参数2(要删除的项数),参数3(要插入的任意数量的
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//删除当前数组第2项,然后从位置2插入22,33,44
arr.splice(2,1,22,33,44);
console.log(arr);
- 清空数组:
splice(0)
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//清空数组
arr.splice(0);
console.log(arr);
- forEach()
功能:对数组进行遍历循环,对数组中每一项运行给定函数
使用方法:forEach(function(value(值),index(索引)){})
例:
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//遍历数组
arr.forEach(function (value,index) {
console.log(index+":"+value);
})
- map()
功能:“映射”,对数组中的每一项运行给定函数,返回每次函数调用的结果组成数组。
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//映射数组中的元素的平方,即:-10*-10,20*20...
console.log(arr.map(function (value, index) {
return value * value;
}));
- filter()
功能:过滤,数组中每一项运行给定的函数,返回满足条件的项,组成新的数组
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//保留数组中负数(过滤所有正数)
console.log(arr.filter(function (value) {
return value < 0;
}));
- every()
功能:判断数组中每一项都是否满足条件,只有所有项都满足条件,才会返回true
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//判断数组中的项是否都是正数
console.log(arr.every(function (value, index) {
return value > 0;
}));
//判断数组中的项是否都大于-20
console.log(arr.every(function (value, index) {
return value > -20;
}));
- some()
功能:判断数组存在满足条件的项,只要有一项满足条件,则返回true
var arr = [-10,20,30,10,400,6,40,21];
//直接输出
console.log(arr);
//判断数组中的项是否有正数
console.log(arr.some(function (value, index) {
return value > 0;
}));