1.length 數(shù)組長度
var arr = [75, 3, 6];
arr.length; // 3
2.isArray 判斷是不是數(shù)組
// typeof 一個(gè)數(shù)組的結(jié)果是object,要判斷一個(gè)變量是不是數(shù)組可以用isArray
var obj = {
a: 2
}
Array.isArray(obj); // false
var arr = [1, 2, 3];
Array.isArray(arr); // true
3.includes 判斷一個(gè)數(shù)組是否包含一個(gè)指定的值
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.獲取單個(gè)元素
var arr = [75, 3, 6];
var val;
val = arr[1]; //中括號里為元素的下標(biāo)位置*葱淳!下標(biāo)位置從0開始*
console.log(val); // 3
5.push 向數(shù)組的末尾添加一個(gè)或更多元素,并返回新的長度抛姑。
var arr = [75, 3, 6];
arr.push(1, 2); // [75, 3, 6, 1, 2]
6.unshift 向數(shù)組的開頭添加一個(gè)或更多元素赞厕,并返回新的長度。
var arr = [75, 3, 6];
arr.unshift(1, 2); //[1, 2, 75, 3, 6]
7.pop 從后面刪除一個(gè)元素
var arr = [75, 3, 6];
arr.pop();//[75, 3]
8.shift 從前面刪除一個(gè)元素
var arr = [75, 3, 6];
arr.shift();//[3, 6]
9.splice 刪除定硝、替換皿桑、添加多個(gè)元素
(1)刪除
var arr = [75, 3, 6, 12, 5, 6, 7];
arr.splice(0, 4);//[5, 6, 7]
// 括號里表示:從下標(biāo)為 0 位開始刪除 4 個(gè)元素
(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);
規(guī)則:以splice(x,y,n...)為例
x = 元素的下標(biāo)位置
y = 被刪除元素的個(gè)數(shù)
n以及n之后的 = 向數(shù)組添加的元素
10.indexOf 查找數(shù)組中某個(gè)元素的下標(biāo)位置
var arr = [75, 3, 6, 12, 5, 6, 7];
var val;
val = arr.indexOf(5);
console.log(val); //4
11.find 查找符合條件的數(shù)組元素
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}
如果數(shù)組中有多個(gè)符合條件的元素,用find只能返回?cái)?shù)組中第一個(gè)符合條件的元素蔬啡;
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 查找符合條件的元素在數(shù)組中的位置(下標(biāo))
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 檢測數(shù)值元素诲侮,并返回符合條件所有元素的數(shù)組。
// 和find相似箱蟆,但她可以找出多個(gè)沟绪。
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 遍歷數(shù)組
var arr = [75, 3, 6, 12, 5, 6, 7];
// 計(jì)算數(shù)組中所有元素的總和
var sum = 0;
arr.forEach(function (item) {
sum += item;
})
console.log(sum);// 114
15.map 通過指定函數(shù)處理數(shù)組的每個(gè)元素,并返回處理后的數(shù)組
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 }
* 將數(shù)組中每個(gè)元素的 name改成了usename 并且把年齡加了10绽慈。
*/
16.slice 選取數(shù)組的的一部分,并返回一個(gè)新數(shù)組辈毯。
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 把數(shù)組變成字符串
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 排列數(shù)組
(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]