1.length 数组长度
var arr = [75, 3, 6];
arr.length; // 3
2.isArray 判断是不是数组
// typeof 一个数组的结果是object,要判断一个变量是不是数组可以用isArray
var obj = {
a: 2
}
Array.isArray(obj); // false
var arr = [1, 2, 3];
Array.isArray(arr); // true
3.includes 判断一个数组是否包含一个指定的值
var arr = ['a', 'b', 'c', 'd'];
var b1 = arr.includes('c');
console.log(b1); // true
var b2 = arr.includes('f');
console.log(b2); // false
4.获取单个元素
var arr = [75, 3, 6];
var val;
val = arr[1]; //中括号里为元素的下标位置*!下标位置从0开始*
console.log(val); // 3
5.push 向数组的末尾添加一个或更多元素,并返回新的长度。
var arr = [75, 3, 6];
arr.push(1, 2); // [75, 3, 6, 1, 2]
6.unshift 向数组的开头添加一个或更多元素,并返回新的长度。
var arr = [75, 3, 6];
arr.unshift(1, 2); //[1, 2, 75, 3, 6]
7.pop 从后面删除一个元素
var arr = [75, 3, 6];
arr.pop();//[75, 3]
8.shift 从前面删除一个元素
var arr = [75, 3, 6];
arr.shift();//[3, 6]
9.splice 删除、替换、添加多个元素
(1)删除
var arr = [75, 3, 6, 12, 5, 6, 7];
arr.splice(0, 4);//[5, 6, 7]
// 括号里表示:从下标为 0 位开始删除 4 个元素
(2)替换
var arr = [75, 3, 6, 12, 5, 6, 7];
arr.splice(0, 1, "我是替换75的");//["我是替换75的", 3, 6, 12, 5, 6, 7]
console.log(arr);
(3)添加
var arr = [75, 3, 6, 12, 5, 6, 7];
arr.splice(0, 0, "我是添加");// ["我是添加", 75, 3, 6, 12, 5, 6, 7]
console.log(arr);
规则:以splice(x,y,n...)为例
x = 元素的下标位置
y = 被删除元素的个数
n以及n之后的 = 向数组添加的元素
10.indexOf 查找数组中某个元素的下标位置
var arr = [75, 3, 6, 12, 5, 6, 7];
var val;
val = arr.indexOf(5);
console.log(val); //4
11.find 查找符合条件的数组元素
var arr = [
{ name: '邓紫棋', age: 20 },
{ name: '张碧晨', age: 30 },
{ name: '张靓颖', age: 25 },
{ name: '薛之谦', age: 28 }
]
var person = arr.find(function (item) {
return item.name === '薛之谦';
});
console.log(person);//{name: "薛之谦", age: 28}
如果数组中有多个符合条件的元素,用find只能返回数组中第一个符合条件的元素;
var arr = [
{ name: '邓紫棋', age: 20 },
{ name: '张碧晨', age: 30 },
{ name: '张靓颖', age: 25 },
{ name: '薛之谦', age: 28 },
{ name: '薛之谦', age: 23 }
]
var person = arr.find(function (item) {
return item.name === '薛之谦';
});
console.log(person); // {name: "薛之谦", age: 28}
12.findIndex 查找符合条件的元素在数组中的位置(下标)
var arr = [
{ name: '邓紫棋', age: 20 },
{ name: '张碧晨', age: 30 },
{ name: '张靓颖', age: 25 },
{ name: '薛之谦', age: 28 }
]
var person = arr.findIndex(function (item) {
return item.age === 28;
});
console.log(person); // 3
13.filter 检测数值元素,并返回符合条件所有元素的数组。
// 和find相似,但她可以找出多个。
var arr = [
{ name: '邓紫棋', age: 20 },
{ name: '张碧晨', age: 30 },
{ name: '张靓颖', age: 25 },
{ name: '薛之谦', age: 28 },
{ name: '薛之谦', age: 23 }
]
var person = arr.filter(function (item) {
return item.name === '薛之谦';
});
console.log(person); // { name: '薛之谦', age: 28 }, { name: '薛之谦', age: 23 }
// 找出年龄小于或等于20岁的明星
var newArr = arr.filter(function (item) {
return item.age <= 20;
});
console.log(newArr); // { name: '邓紫棋', age: 20 }
14.forEach 遍历数组
var arr = [75, 3, 6, 12, 5, 6, 7];
// 计算数组中所有元素的总和
var sum = 0;
arr.forEach(function (item) {
sum += item;
})
console.log(sum);// 114
15.map 通过指定函数处理数组的每个元素,并返回处理后的数组
var arr = [
{ name: '张三', age: 28 },
{ name: '李四', age: 23 },
{ name: '陈武', age: 21 }
];
var newArr = arr.map(function (item) {
return {
username: item.name,
age: item.age + 10
};
})
console.log(newArr);
/**
* 输出为;
* { username: "张三", age: 38 }
* { username: "李四", age: 33 }
* { username: "陈武", age: 31 }
* 将数组中每个元素的 name改成了usename 并且把年龄加了10。
*/
16.slice 选取数组的的一部分,并返回一个新数组。
var arr = [1, 2, 3, 4, 5];
var newArr1 = arr.slice(2); // 从位置2(包含)开始截取到最后
console.log(newArr1); // [3,4,5]
var newArr2 = arr.slice(2, 4); // 从位置2(包含)开始截取到位置4(不包含4)
console.log(newArr2); // [3,4]
17.join 把数组变成字符串
var arr = ['a', 'b', 'c'];
var str = arr.join('-');
console.log(str); // "a-b-c"
var str2 = arr.join(',');
console.log(str2); // "a,b,c"
18.sort 排列数组
(1)sort是以ASCII来排序的:
var numbers = [8, 22, 12, 43, 55, 66, 74, 100, 34];
var val;
val = numbers.sort();
console.log(val);//[100, 12, 22, 34, 43, 55, 66, 74, 8]
(2)正常的大小排序使用以下方法:
var numbers = [8, 22, 12, 43, 55, 66, 74, 100, 34];
var val;
var arr;
val = numbers.sort(function (x, y) {
return x - y;
});
console.log(val);//[8, 12, 22, 34, 43, 55, 66, 74, 100]
// 倒序
arr = numbers.sort(function (x, y) {
return y - x;
});
console.log(arr);//[100, 74, 66, 55, 43, 34, 22, 12, 8]