原文地址:js數組學習整理javascript
經常使用的js數組操做方法及原理java
一、聲明數組的方式python
var colors = new Array();//空的數組 var colors = new Array(3); //長度爲3 var colors = new Array('red','blue');//初始化
其中,在聲明數組的時候,去掉new操做符,也能夠。數組
還有一種初始化數組的方式,使用數組字面量表示法 。框架
數組字面量由一對包含數組項的方括號表示,多個數組項之間用逗號隔開。函數
var colors = [ 'red', 'blue']; var colors = [];
二、數組的length , 不是隻讀的,能夠用它來增刪數組。學習
var color = ['red', 'blue', 'green']; color.length = 2; alert(color[2]); // undefined,說明這個值已經不存在了
增長數組項.net
var colors = ['red','blue']; colors[colors.length] = 'green';
三、檢測數組對象
若是隻有一個全局的環境,能夠用blog
if( value instanceof Array ){ }
但若是一個網頁中有框架,就會有多個全局環境,那麼Array構造函數就會有多個,此時用
Array.isArray(value);//IE9+
四、轉換方法(將數組轉化爲字符串)
全部對象都有toLocalString()、toString()、這2個方法返回以逗號分隔的字符串,它們的原理分別是循環數組,將數組的每一項分別使用toLocalString()、toString()方法後,拼接成字符串。
join()方法是能夠指定分隔的符號來返回字符串。若是在join()中不指定分隔符,默認爲逗號。
若是數組中的一項值是null,或者undefined,使用join(),toLocalString()、toString()方法返回的是以空字符串表示該項。
valueOf()返回的仍是數組
五、向數組中添加或取出值(棧方法,隊列方法)
var colors = []; colors.push('red'); // 返回數組長度 1 colors.pop(); //返回數組最後一項red
這2個方法都是像棧同樣的形式,直接操做最後的元素,也就是後來的元素。
還有2種方法像隊列同樣的形式操做數組,shift,unshift
var colors = ['red', 'blue']; colors.shift(); // 返回的是數組第一項red colors.unshift('green'); // 返回數組長度3
取值操做pop(),shift(),會返回一個值
push(),unshift(),會返回添加之後的數組長度。
六、排序方法
var color = [1,2,3,4]; color.reverse(); // 反轉數組 4,3,2,1 color.sort(); //默認是升序排列 1,2,3,4 //但若是colors = [1, 2, 3, 15];使用sort時會返回 1, 15, 2 ,3
sort();方法會對數組的每一項進行toString()。因此最後獲得的數組每一項字符串。因此會出現那樣的結果。
但sort()接收一個比較方法的函數做爲參數,那咱們能夠自定義一個compare函數
//自定義升序 function compare(v1, v2){ if(v1 < v2) return -1; else if(v1 > v2) return 1; else return 0; } var values = [0, 1, 3, 15] values.sort(compare); //返回1,2,3,15
七、操做方法(concat,slice,splice)
這裏concat和slice方法都不會直接操做原數組,而是返回一個新的數組,原數組不會改變。
var colors = ['red', 'blue']; var a = ['green']; alert(colors.concat(a));//['red', 'blue', 'green'] alert(colors); //['red', 'blue']
slice很像python切割字符串。
var colors = ['red', 'blue', 'green']; colors.slice(1);//返回[blue,green] colors.slice(1,3);//返回['blue']
slice()若是傳入一個負值,則用數組長度加上這個值,對應的就是等價的值
//若是數組長度爲5 slice(-2, -1); 與 slice(3, 4);相等
splice(‘起始位置’, ‘刪除數量'[, ‘代替值’]);它是直接操做原數組,以數組形式返回被操做的元素
var colors = ['red', 'green', 'blue']; colors.splice(1, 1); // 返回[‘green’] ,而原數組爲[red, blue] colors.splice(1, 0, 'yellow'); //返回一個空數組 ,而原數組爲[red,yellow,green,blue]
八、位置方法(indexOf, lastIndexOf)
indexOf(‘要查找的項'[, ‘查找起點的索引’])返回數組值的索引,從第一個值開始查找、 lastIndexOf則相反。
var num = [1,2,3,4,5,6]; num.indexOf(3); //返回2 num.indexOf(3, 3); //返回-1,表示該值不存在
【全文完】