检测是否为数组
instanceof运算符或者Array.isArray()方法可以用来检测是否为数组
Array.isArray优先于instanceof
Array.isArray(参数) H5新增的方法 ie9以上版本支持
添加数组元素方法
1.push()在外面数组的末尾添加一个或者多个数组元素
var arr=[1,2,3,];
arr.push(4,‘p’);//[1,2,3,'p]
console.log(arr.push(4,'p'));//4
push完毕之后,返回的结果是新数组的长度
2.unshift在数组的开头添加一个或多个数组元素
console.log(unshift('r',0));//6
//['r',0,1,2,3,4,'p']
删除数组元素
1.pop()可以删除数组最后一个元素
console.log(arr.pop());//pink
一次只能删除一个元素
pop完毕后返回的结果是删除的那个元素
原数组也会发生变化
2.shift()可以删除数组的第一个元素
一次只能删除一个元素
同上
例
// 有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面
var arr = [1500, 1200, 2000, 2100, 1800];
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (arr[i] < 2000) {
// newArr[newArr.length] = arr[i];
newArr.push(arr[i]);
}
}
数组排序
1. 翻转数组
var arr = ['pink', 'red', 'blue'];
arr.reverse();//['blue','red','pink']
2. 数组排序(冒泡排序)
var arr1 = [13, 4, 77, 1, 7];
arr1.sort();//[1,13,4,7,77]sort函数对于有十位数的数是这么排序的1和13最左边都是1放一起,7和77最左边都是7放一起
arr1.sort(function(a, b) {
// return a - b; 升序的顺序排列
return b - a; // 降序的顺序排列
});
数组索引方法
方法名 说明
indexOf() 数组中查找给定元素的第一个索引
lastIndexOf() 在数组中的最后一个的索引
如果不存在,则返回-1
var arr = ['red', 'green', 'blue', 'pink', 'blue'];
console.log(arr.IndexOf('blue')); // 2
console.log(arr.lastIndexOf('blue')); // 4
console.log(arr.lastIndexOf('black')); // -1
数组去重(重要)
数组去重 ['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'] 要求去除数组中重复的元素。
1.目标: 把旧数组里面不重复的元素选取出来放到新数组中, 重复的元素只保留一个, 放到新数组中去重。
2.核心算法: 我们遍历旧数组, 然后拿着旧数组元素去查询新数组, 如果该元素在新数组里面没有出现过, 我们就添加, 否则不添加。
3.我们怎么知道该元素没有存在? 利用 新数组.indexOf(数组元素) 如果返回时 - 1 就说明 新数组里面没有改元素
// 封装一个 去重的函数 unique 独一无二的
function unique(arr) {
var newArr = [];
for (var i = 0; i < arr.length; i++) {
if (newArr.indexOf(arr[i]) === -1) {//全等包括值和数据类型考虑到旧数组里有-1元素
newArr.push(arr[i]);
}
}
return newArr;
}
// var demo = unique(['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'])
console.log(demo);
数组转换为字符串
1.toString()
var arr = [1, 2, 3];
console.log(arr.toString()); // 1,2,3
2. join(分隔符)
var arr1 = ['green', 'blue', 'pink'];
console.log(arr1.join()); // green,blue,pink
console.log(arr1.join('-')); // green-blue-pink
console.log(arr1.join('&')); // green&blue&pink
方法名
concat() 链接两个或多个数组 不影响原数组 返回一个新数组
slice() 数组截取slice(begin,end) 返回被截取项目的新项目
splice() 数组删除splice(第几个开始,要删除个数) 返回被删除项目的新数组,会影响原数组