JavaScript内置对象就是指这个语言自带的一些对象,供开发者使用,这些对象提供了一些常用的或是最基本而必要的功能。
1.Array.isArray(arr);这是一个静态方法。判断变量arr是否为一个数组,是则返回true,否则返回false。
var arr = [1,2,3,4,5,6];
console.log(Array.isArray(arr));
2.puch()向数组的末尾添加元素,参数为一个或更多元素,改变原数组,返回值为新数组的长度
var arr = [1,2,3,4,5,6];
var res = arr.push("a",3,4,5,"hahah");
console.log(res);
3.unshift()在数组的头部添加元素,参数为一个或多个元素,改变原数组,返回值为新数组的长度
var arr = [1,2,3,4,5,6];
var res = arr.unshift("a",3,4,5,"hahah");
console.log(res);
4.pop()删除数组的最后一个元素,没有参数,改变原数组,返回值为被删除的数据
var arr = [1,2,3,4,5,6];
var res = arr.pop();
console.log(res);
5.shift()删除数组的第一个元素,没有参数,改变原数组,返回值为被删除的数据
var arr = [1,2,3,4,5,6];
var res = arr.shift();
console.log(res);
6.splice(),参数为一个时,表示从指定索引删除到结束;参数为两个时,第一个表示索引,第二个表示要删除的个数;参数为多个时,第一个表示索引,第二个表示要删除的个数,第三个及之后的元素添加到被删除的元素的位置
var arr = [1,2,3,4,5,6];
var res = arr.splice(2);
console.log(res);
console.log(arr);
var arr = [1,2,3,4,5,6];
var res = arr.splice(2,2);
console.log(res);
console.log(arr);
var arr = [1,2,3,4,5,6];
var res = arr.splice(2,2,"zhangsan","lisi",true,"hahah",3.1415);
console.log(res);
console.log(arr);
7.reverse()数组翻转,即颠倒数组中元素的顺序,没有参数,改变原数组,返回值为改变后的数组
var arr = [1,2,3,4,5,6];
console.log(arr);
var res = arr.reverse();
console.log(res);
console.log(arr);
8.join()将数据转成字符,没有参数,不改变原数组,返回值为字符型数据
var arr = [1,2,3,4,5,6];
console.log(arr);
var res = arr.join();
console.log(res);
console.log(arr);
9.slice()复制元素,参数为一个时,从指定索引复制该索引及之后的数据;参数为两个时,表示从指定索引开始复制第一个索引到第二个索引前一个的元素,不改变原数组,返回值为所复制的元素
var arr = [1,2,3,4,5,6];
console.log(arr);
var res = arr.slice(3);
console.log(res);
console.log(arr);
var arr = [1,2,3,4,5,6];
console.log(arr);
var res = arr.slice(2,4);
console.log(res);
console.log(arr);
10.sort()数组排序,默认是字符的排序规则,即逐位比较,得到结果就停止,没有参数,改变原数组,返回值为改变后的数组
var arr = [45,63,2456,163,79];
console.log(arr);
var res = arr.sort();
console.log(res);
console.log(arr);
改变这种情况的方式:传一个回调函数。返回值为a-b时,输出的是从小到大排序;返回的值为b-a时,输出的是从大到小的排序
var arr = [45,63,2456,163,79];
console.log(arr);
arr.sort(function(a,b){
return a-b;
})
console.log(arr);
11.concat()合并数组,参数为一个或多个,不改变原数组,返回值为合并后的数组
var arr1 = ["a","b"];
var arr2 = [4,5];
var res = arr1.concat(arr2);
console.log(res);
console.log(arr1);
console.log(arr2);
12.indexOf()根据传入的元素,查找数组中的位置,参数为一个时表示要查找的数据;参数为两个时,第一个表示要查找的数据,第二个表示从第几位开始找,没改变原数组,找到了返回索引,没找到返回-1
var arr = [45,12,37,24,76,42,89,13,24,76,45];
console.log(arr);
var n = arr.indexOf(24,5);
console.log(n);
lastIndexOf()从后往前查找,参数为一个时表示要查找的数据;参数为两个时,第一个表示要查找的数据,第二个表示从第几个开始往前查找,没有改变原数组,找到了返回索引,没找到返回-1
var arr = [45,12,37,24,76,42,89,13,24,76,45];
console.log(arr);
var n = arr.lastIndexOf(24,5);
console.log(n);
13.迭代(遍历)
1)forEach()遍历数组,与for循环一样,参数为回调函数,没有改变原数组,返回值为undefined,回调函数的返回值没有造成什么影响,val代表数组的值,idx代表数组的索引,self代表数组本身
var arr = [45,12,37,24,76,42,89,13,24,76,45];
console.log(arr);
var res = arr.forEach(function(val,idx,self){
console.log(val,"---",idx,"---",self);
// console.log(val);
return "hello";
})
console.log(res);
2)map()方法可以修改值,并返回到新数组中,参数为回调函数,没有改变原数组,返回值为数组,回调函数的返回值被放在了map最终返回的数组内
var arr = [45,12,37,24,76,42,89,13,24,76,45];
console.log(arr);
var res = arr.map(function(val,idx,self){
console.log(val,"---",idx,"---",self);
// return "hello";
return val * 1.3;
})
console.log(res);
console.log(arr);
3)filter()可以过滤值,并返回到一个新数组中(返回所有满足给定条件的数据项所组成的新数组),参数为回调函数,没有改变原数组的值,返回值为原数组,回调函数的返回值没有造成什么影响
var arr = [45,24,76,42,89,13,24,76,45];
console.log(arr);
var res = arr.filter(function(val,idx,self){
// console.log(val,"---",idx,"---",self);
return val > 50;
})
console.log(res);
console.log(arr);
4)some()遍历数组中是否有符合条件的值,只要有一项符合,那么就是true,同时停止遍历,参数为回调函数,没有改变原数组的值,回调函数的返回值没有造成什么影响
var arr = [45,24,76,42,89,13,24,76,45];
console.log(arr);
var res = arr.some(function(val,idx,self){
console.log(val,"---",idx,"---",self);
return val == 42;
})
console.log(res);
console.log(arr);
5)every()遍历数组中是否有符合条件的值,必须全部符合,如果有一个不符合,就是false,同时停止遍历,参数为回调函数,没有改变原数组的值,回调函数的返回值没有造成什么影响
var arr = [45,24,76,42,89,13,24,76,45];
console.log(arr);
var res = arr.every(function(val,idx,self){
console.log(val,"---",idx,"---",self);
// return val < 80;
return "hello"
})
console.log(res);
console.log(arr);
14.reduce()和reduceRight只是遍历方向不同,他们的主要功能是归并,可以将每次回调函数的返回值,传入下次回调函数的执行,作为下次回调函数的第一个参数存在,prev表示上一次回到函数执行的返回值,例题是计算数组的数值加起来的总和
var arr = [45,24,76,42,89,13,24,76,45];
console.log(arr);
var res = arr.reduce(function(prev,val,idx,self){
// console.log(prev,"---",val,"---",idx,"---",self);
return prev + val;
return "hello"
})
console.log(res);
console.log(arr);