引言
內置對象,在JS中本身已經爲我們程序員寫好的對象。對於內置對象,我們直接使用就可以,不需要再定義。比如說:Date,Array,Math,Error,String
等,這裏以Array的一些API爲例子作介紹。
JS的數組基礎:數組的創建與使用
數組Array的API
- sort() :
功能:自動排序,默認是升序排列
使用方法:sort(function(a,b){return a-b / b-a}
存在問題:只能通過第一位排列,沒有降序
解決方法:使用回調函數進行規則設置,並實現降序
例:
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//數組排序(默認升序)
console.log(arr.sort());
//使用回調函數實現升序排列
console.log(arr.sort(function (a,b) {
return a-b;
}));
//使用回調函數實現降序排列
console.log(arr.sort(function (a,b) {
return b-a;
}));
從圖中結果可以看到,遇到一些複雜的數時,單單調用sort排序存在問題。
因此sort()正確而推薦的使用方法是:結合使用回調函數
//使用回調函數實現升序排列
console.log(arr.sort(function (a,b) {
return a-b;
}));
//使用回調函數實現降序排列
console.log(arr.sort(function (a,b) {
return b-a;
}));
- slice()
功能:返回從原數組中指定開始下標到結束下標之間的項組成的新數組。即:把指定的下標範圍截取下來,形成一個新數組
使用方法:slice(參數1(起始位置),參數2(結束位置)
例:
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//截取數組下標爲二的位置到結尾的元素
console.log(arr.slice(2));
//截取數組下標爲2 - 4的位置的元素
console.log(arr.slice(2, 4));
//截取數組長度-3的位置到結尾的元素 arr.length - 3 = 8-3 =5 即5-結束的元素
console.log(arr.slice(-3));
- splice()
功能:實現數組的刪除,插入,替換,清空數組等
使用方法:
- 刪除功能:
splice(參數1(要刪除第一項的位置),參數2(要刪除的項數))
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//刪除數組中項數爲2-4的元素
console.log("已刪除的數組:"+arr.splice(2, 4));
console.log("arr:"+arr);
- 插入功能:
splice(參數1(起始位置),參數2(要刪除的項數),參數3(要插入的項)
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//從當前數組的位置2開始插入11,22兩個元素
arr.splice(2, 0, 11, 22);
console.log(arr);
- 替換功能:
splice(參數1(起始位置),參數2(要刪除的項數),參數3(要插入的任意數量的
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//刪除當前數組第2項,然後從位置2插入22,33,44
arr.splice(2,1,22,33,44);
console.log(arr);
- 清空數組:
splice(0)
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//清空數組
arr.splice(0);
console.log(arr);
- forEach()
功能:對數組進行遍歷循環,對數組中每一項運行給定函數
使用方法:forEach(function(value(值),index(索引)){})
例:
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//遍歷數組
arr.forEach(function (value,index) {
console.log(index+":"+value);
})
- map()
功能:“映射”,對數組中的每一項運行給定函數,返回每次函數調用的結果組成數組。
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//映射數組中的元素的平方,即:-10*-10,20*20...
console.log(arr.map(function (value, index) {
return value * value;
}));
- filter()
功能:過濾,數組中每一項運行給定的函數,返回滿足條件的項,組成新的數組
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//保留數組中負數(過濾所有正數)
console.log(arr.filter(function (value) {
return value < 0;
}));
- every()
功能:判斷數組中每一項都是否滿足條件,只有所有項都滿足條件,纔會返回true
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//判斷數組中的項是否都是正數
console.log(arr.every(function (value, index) {
return value > 0;
}));
//判斷數組中的項是否都大於-20
console.log(arr.every(function (value, index) {
return value > -20;
}));
- some()
功能:判斷數組存在滿足條件的項,只要有一項滿足條件,則返回true
var arr = [-10,20,30,10,400,6,40,21];
//直接輸出
console.log(arr);
//判斷數組中的項是否有正數
console.log(arr.some(function (value, index) {
return value > 0;
}));