js——數組操作
把教程裏的api看了一遍,感覺記住了,又感覺沒有記住。。。後來發現,如果給自己提需求,或許不錯。想想對於一個數組,可能會用到哪些操作呢?基本的操作就是增刪改查吧(有點像sql)
1. 創建數組
空數組:var arr = []
包含undefined元素[undefined x 3]
- var arr = []; arr.length = 3;
- var arr = [1,2,3]; delete arr[i];//delete每個元素後
- var arr = new Array(3);//不推薦使用,3表示長度
- var arr = new Array[3];//錯誤!
- var arr = Array.apply(null, {length: 3});
正常元素[1,2,3]
- var arr = [1,2,3];
- var arr = new Array(1,2,3);
- var arr = new Object([1,2,3]);
- var arr = Array.apply(null, [1,2,3]);
2. 增
對數組的修改,修改的操作直接就體現在原數組上
var arr = [1,2,3];
- 從前面添加[4,5,1,2,3]
var len = arr.unshift(4, 5);//可以插入多個,可以插入一個新數組作為元素,返回新數組長度
var delArr = arr.splice(0, 0, 4, 5);//splice(訪問的位置,刪除的元素個數,添加的元素),返回[被刪除的元素]數組
- 從中間添加[1,4,5,2,3]
var delArr = arr.splice(1, 0, 4, 5);
- 從後面添加[1,2,3,4,5]
var len = arr.push(4,5);//返回新數組長度
arr2 = [4,5]; var newArr = arr.concat(arr2);//不對原來的數組做修改
3. 刪
var arr = [1,2,3];
- 刪除第一個[2,3]
var num = arr.shift();//返回刪除的第一個元素
var delArr = arr.splice(0, 1);//splice不給插入的元素
- 從中間刪除[1,3]
var delArr = arr.splice(1, 1);
- 刪除並返回最後一個[1,2]
var num = arr.pop();//返回刪除的最後一個元素
var delArr = arr.splice(arr.length - 1, 1);
4. 改
var arr = [3,2,1];
- 反轉reverse
var newArr = arr.reverse();//newArr = arr = [1,2,3]
- 排序sort
var newArr = arr.sort();//newArr = arr = [1,2,3]
5. 查
var arr = [1,2,1];
- indexOf 元素第一次出現的位置
var index = arr.indexOf(1);//0
- lastIndexOf 元素最後一次出現的位置
var index = arr.lastIndexOf(1);//2
6. 轉換成字符串
var arr = [1,2,3];
- var str = arr.toString();//"1,2,3"
- var str = arr.join("*");//"1*2*3" 用連接符連接元素成字符串
7. 不用循環對各元素做統一處理
var arr = [1,2,3];
- every():判斷arr中每個元素是否都滿足條件,不對空數組進行檢測,不改變原數組
var flag = arr.every(function(num){
return num > 0;
});//true
- some():判斷arr中是否有元素滿足條件
var flag = arr.some(function(num){
return num < 0;
});//false
- forEach():對每元素執行一次回調函數
arr.forEach(function(item, index){
alert(index + ": " + item);
});//輸出 0: 1 1: 2 2: 3
- map():通過指定函數處理數組的每個元素,並返回處理後的數組
var arr = [1,2,3];
var newArr = arr.map(function(item){
return item - 1;
});//newArr = [0,1,2]
- fill():用一個數填充數組各位
var newArr = arr.fill(1);//newArr = arr = [1,1,1]
js——數組操作