一、如何判断一个变量是否是数组对象
1、方法一 instanceof !arr instanceof Array
function fn(arr) {
if (!(arr instanceof Array)) {
console.error('参数err 不是数组对象');
return;
}
var d = 1;
fn(d);
2、方法二 Array.isArray()
function fn(arr) {
if (!Array.isArray(arr)) {
console.error('参数err 不是数组对象');
return;
}
var d = 1;
fn(d);
二、常用方法
1、toString() 把数组转换成字符串,逗号分隔每一项
var arr = [1, 3, 8, 10, 5];
console.log(arr.toString()); //1,3,8,10,5
2、valueOf() 返回数组对象本身
var arr = [1, 3, 8, 10, 5];
console.log(arr.valueOf()); //Array(5)
3、位置方法
indexOf()、lastIndexOf() //如果没找到返回-1
4、push() // 在数组末尾添加元素
var array = [1, 2, 3];
array.push(4, 5);
// 参数, 可以有多个,将来都会添加到数组最后
// 返回值,就是改变后的数组的长度
var r = array.push(5, 6, 7);
console.log(r); // 7
console.log(array); // (7) [1, 2, 3, 4, 5, 6, 7]
5、unshift() //在数组首位添加元素
var arr = [1, 2, 3];
arr.push(4);
arr.unshift(0);
console.log(arr); //(5) [0, 1, 2, 3, 4]
6、concat() //拼接数组
var arr = [1,2,3];
var arr1 = [4,5,6];
arr = arr.concat(arr1);
console.log(arr); // [1, 2, 3, 4, 5, 6]
7、pop() //删除最后一个元素
var arr = [1, 2, 3, 4, 5];
console.log(arr.pop()); // 5
console.log(arr); // (4) [1, 2, 3, 4]
8、shift() //删除第一个元素
var arr = [1, 2, 3, 4, 5];
console.log(arr.shift()); // 1
console.log(arr); // (4) [2, 3, 4, 5]
9、splice(); //该方法中的第一个参数是删除的起始位置,第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素。
var arr = [1, 2, 3, 4, 5];
console.log(arr.splice(1,3)); //(3) [2, 3, 4]
console.log(arr); //(2) [1, 5]
var arr = [1, 2, 3, 4, 5];
console.log(arr.splice(arr.indexOf(2),3)); //(3) [2, 3, 4]
console.log(arr); //(2) [1, 5]
// 替换
var arr = [1, 2, 3, 4, 5];
console.log(arr.splice(arr.indexOf(2), 3, 8, 9));
console.log(arr); //(6) [1, 8, 9, 5]
// 增加
var arr = [1, 2, 3, 4, 5];
console.log(arr.splice(arr.indexOf(2), 0, 8, 9));
console.log(arr); // (7) [1, 8, 9, 2, 3, 4, 5]
// 倒着增加
var arr = [1, 2, 3, 4, 5];
console.log(arr.splice(arr.indexOf(0), 0, 8, 9)); // -1
console.log(arr); // (7) [1, 2, 3, 4, 8, 9, 5]
10、slice(); //截取原数组的一段元素,不会改变原数组
var arr = [1, 2, 3, 4, 5];
console.log(arr.slice(2,4)); // (2) [3, 4]
console.log(arr); // (5) [1, 2, 3, 4, 5]
11、reverse(); // 将数组倒序排列
var arr = ['e', 'a', 'f', 'b'];
arr.reverse();
console.log(arr); //(4) ["b", "f", "a", "e"]
12、sort(); // a-b 从小到大 b-a 从大到小
var arr = [10, 88, 5, 12, 98, 3];
arr.sort(function(a,b) {
return a-b;
})
console.log(arr); //从小到大排序
var arr = [10, 88, 5, 12, 98, 3];
arr.sort(function(a,b) {
return a-b;
})
console.log(arr); //从大到小排序