Array 類型: 檢測數組: console.log(myarr instanceof Array) //true toString()方法會返回由數組中每個值的字元串形式拼接而成的一個以逗號分隔的字元串 valueOf()返回的還是數組 數組的棧方法: push方法從數組末尾添加一項,並返回修改 ...
Array 類型:
檢測數組: console.log(myarr instanceof Array) //true toString()方法會返回由數組中每個值的字元串形式拼接而成的一個以逗號分隔的字元串 valueOf()返回的還是數組
數組的棧方法: push方法從數組末尾添加一項,並返回修改後的數組長度 pop方法從數組的末尾移除一項,並返回該移除項
數組的隊列方法: push方法從數組末尾添加一項,並返回修改後的數組長度 shift方法從數組取出第一項,並返回該取出項 unshift方法從數組前端插入任意項,並返回該數組長度
從排序 reverse()方法會反轉數組項的順序 sort()方法按升序排列數組項——即最小的值位於最前面,最大的值排在最後面。 為了實現排序,sort()方法會調用每個數組項的 toString()轉型方法,然後比較得到的字元串,以確定如何排序 var values = [6,1,'2',3,'10',4,'5']; values.sort(); console.log(values);
function compare(value1, value2) { if(value1 < value2){ return -1; } else if (value1 > value2){ return 1; } else { return 0; } }
var val = [6,1,'2',3,'10',4,'5']; val.sort(compare); console.log(val);
操作方法 concat()方法連接多個數組,並返回新建數組 var colors = ['red','green','blue']; var colors1 = colors.concat('yellow',['black','brown']); console.log(colors); console.log(colors1);
slice()方法可以接受一或兩個參數,即要返回項的起始和結束位置。 var colors = ['red', 'green', 'blue','yellow','purple']; var colors1 = colors.slice(1); var colors2 = colors.slice(1,4); console.log(colors1); // [ 'green', 'blue', 'yellow', 'purple' ] console.log(colors2); // [ 'green', 'blue', 'yellow' ]
splice()方法 刪除任意項,只需兩個參數,參數一:要刪除的起始項,參數二:要刪除的個數。 插入,只需提供 3 個參數:起始位置、0(要刪除的項數)和要插入的項。如果要插入多個項,可以再傳入第四、第五,以至任意多個項。 替換,只需指定 3 個參數:起始位置、要刪除的項數和要插入的任意數量的項。插入的項數不必與刪除的項數相等。 var colors = ['red', 'green', 'blue','yellow','purple']; var removed = colors.splice(0,1); console.log(removed); // 返回移除項
removed1 = colors.splice(1,0,'ye'); console.log(removed1); // 返回空數組 removed2 = colors.splice(1,1,'bac'); console.log(removed2); // 返回被替換的項 console.log(colors);
位置方法 為數組實例添加了兩個位置方法:indexOf()和 lastIndexOf()。這兩個方法都接收 兩個參數:要查找的項和(可選的)表示查找起點位置的索引。其中,indexOf()方法從數組的開頭(位 置 0)開始向後查找,lastIndexOf()方法則從數組的末尾開始向前查找。 var numbers = [1,2,3,4,5,4,3,2,1]; console.log(numbers.indexOf(4)); //3 console.log(numbers.lastIndexOf(4)); //5
console.log(numbers.indexOf(4, 4)); //5 console.log(numbers.lastIndexOf(4, 4)); //3
迭代方法 every():對數組中的每一項運行給定函數,如果該函數對每一項都返回 true,則返回 true。 some():對數組中的每一項運行給定函數,如果該函數對任一項返回 true,則返回 true。 filter():對數組中的每一項運行給定函數,返回該函數會返回 true 的項組成的數組。 map():對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。 forEach():對數組中的每一項運行給定函數。這個方法沒有返回值。
var numbers = [1,2,3,4,5,4,3,2,1]; var everyResult = numbers.every(function (item, index, array) { return (item > 2); }); console.log(everyResult); // false
var someResult = numbers.some(function(item, index, array){ return (item > 2); }); console.log(someResult); //true
var filterResult = numbers.filter(function(item, index, array){ return (item > 2); }); console.log(filterResult); // [3,4,5,4,3]
var mapResult = numbers.map(function(item, index, array){ return item * 2; }); console.log(mapResult); //[2,4,6,8,10,8,6,4,2]
numbers.forEach(function(item, index, array){ if(item > 2) { console.log(index); } });
歸併方法 reduce()方法從數組的第一項開始,逐個遍歷到最後。 reduceRight()則從數組的最後一項開始,向前遍歷到第一項。 這兩個方法都接收兩個參數:一個在每一項上調用的函數和(可選的)作為歸併基礎的初始值 reduce()和 reduceRight()的函數接收 4 個參數:前一個值、當前值、項的索引和數組對象。 var values = [1,2,3,4,5]; var sum = values.reduce(function(prev, cur, index, array){ return prev + cur; }); console.log(sum); //15
var sum1 = values.reduceRight(function(prev, cur, index, array){ return prev + cur; }); console.log(sum1); //15