javascript
JavaScript常用数组方法
JavaScript數組方法有以下這些:
forEach() 方法對數組的每一個元素執行一次提供的函數。
map() 方法創建一個新數組,其結果是該數組都執行一次函數,原函數保持不變。
filter() 方法使指定函數測試數組的每一個元素,并放回一個通過元素的新數組。
some() 方法測試該數組有元素通過了指定函數的測試,如果有返回true,否則,返回false。
every() 方法測試該數組是否全部通過指定函數測試,全部通過返回true,否則,返回false。
Array.of() 方法創建一個具有可變數量參數的新數組實例,而不考慮參數的數量或類型。
Array.isArray() 方法適用于確定傳遞的值是否為Array
slice() 方法將數組的一部分淺拷貝,返回到從開始到結束(不包括結束)選擇的新數組對象。原始數組不會被修改。
splice() 方法通過刪除現有元素或添加新元素來更改數組的內容,第一個參數索引位置,第二個參數刪除的個數,第三個參數添加新內容
?
find() 方法返回數組中滿足提供的測試函數的第一個元素的值。
語法: arr.find(callback[, thisArg])
?
findIndex()方法返回數組中滿足提供的測試函數的第一個元素的索引。否則返回-1。
語法:?arr.findIndex(callback[, thisArg])
?
indexOf()方法返回在數組中可以找到給定元素的第一個索引,如果不存在,則返回-1。
語法: arr.indexOf(searchElement)
????????? ? arr.indexOf(searchElement[, fromIndex = 0])
?
lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或變量)在數組中的最后一個的索引,如果不存在則返回 -1。從數組的后面向前查找,從 fromIndex 處開始。
語法: arr.lastIndexOf(searchElement[, fromIndex = arr.length - 1])
?
includes() 方法用來判斷當前數組是否包含某指定的值,如果是,則返回 true,否則返回 false。
語法: arr.includes(searchElement)
?
????????????arr.includes(searchElement, fromIndex)
?
?
?
?
forEach 遍歷數組
| 1 2 3 4 5 | var?arr?=?["a",?"b",?"c"]; arr.forEach(function(element,index)?{ ????console.log(element,index);?????? }); |
?
map 返回新數組,為當前元素加字符串m
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var?arr?=?["a",?"b",?"c"]; arr.map(function(element,index)?{ ????return?element?+=?"m"; }); //?將給定數組的元素轉成整數 ["1",?"2",?"3"].map(parseInt);?????????//?[1,?NaN,?NaN] //?等價于 ["1",?"2",?"3"].map(function(value,index,array){ ????return?parseInt(value,index); }); parseInt(3,1);?????????????????????????//?NaN???parseInt(string,?radix)?函數將給定的字符串以指定基數解析成為整數。 |
?
?
?
filter 返回大于10的元素
| 1 2 3 4 5 6 7 | //?12,?130,?44 var?arr?=?[12,?5,?8,?130,?44]; arr.filter(function(value){ ????return?value>10 }); //?等價于 arr.filter((value)=>value>10); |
?
some 判斷當前數組有元素大于10的元素
| 1 2 3 4 | var?arr?=?[12,?5,?8,?130,?44]; arr.some(function(value){??????????????????//?true ????return?value>10 }); |
?
every 判斷當前數組所有元素是否都大于10
| 1 2 3 4 | var?arr?=?[12,?5,?8,?130,?44]; arr.every(function(value){?????????????????//?false ????return?value>10 }); |
?
創建數組
Array.of() 方法創建一個具有可變數量參數的新數組實例,而不考慮參數的數量或類型。
| 1 2 3 4 5 6 7 8 9 | Array.of(3);????????????????????//?[7] Array(3);???????????????????????//?Array(3)?創建一個包含?3?個?undefined?元素的數組 if(!Array.of){ ????Array.of?=?function(){ ????????return?Array.prototype.slice.call(arguments); ????} } |
?
判斷是否數組
Array.isArray() 方法適用于確定傳遞的值是否為Array
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | Array.isArray([]);??????????????????????//?true Array.isArray(new?Array());?????????????//?true Array.isArray(Array.prototype);?????????//?true Array.isArray(Array.of(undefined));?????//?true Array.isArray(null);????????????????????//?false Array.isArray(undefined);???????????????//?false if(!Array.isArray){ ????Array.isArray?=?function(){??? ????????return?Object.prototype.toString.call(arguments)?===?"[object?Array]"; ????} } |
?
slice() 方法將數組的一部分淺拷貝,返回到從開始到結束(不包括結束)選擇的新數組對象。原始數組不會被修改。
| 1 2 3 4 5 | var?arr?=?["zero",?"one",?"two",?"three"]; var?sliced?=?arr.slice(1,3); console.log(arr);????????????????//??["zero",?"one",?"two",?"three"] console.log(sliced);?????????????//??["one",?"two"] |
?
splice() 方法通過刪除現有元素或添加新元素來更改數組的內容,第一個參數索引位置,第二個參數刪除的個數,第三個參數添加新內容
| 1 2 3 4 5 6 7 8 9 | var?arr?=?["aaa","bbb","ccc"]; //?在索引1的位置添加一個新元素ddd arr.splice(1,0,"ddd");????????//?["aaa",?"ddd",?"bbb",?"ccc"] //?在索引2的位置刪除一個元素 arr.splice(2,1);??????????????//?["aaa",?"ddd",?"ccc"] //?在索引1的位置刪除一個元素并添加兩個元素 arr.splice(1,1,"eee","fff");??//?["aaa",?"eee",?"fff",?"ccc"] |
?
?
例一、find()方法 查找數組中第一個大于等于15的元素
| 1 2 3 4 | var?num?=?[10,3,5,15,100,1].find(function(elem,?index){???? ????return?elem>=15; }); console.log(num)?????//?15 |
?
例二、findIndex() 查找數組中第一個大于等于15的元素的位置(索引)
| 1 2 3 4 | var?num?=?[10,3,5,15,100,1].findIndex(function(elem,?index){????//?15 ????return?elem>=15; }); console.log(num)?????//?3 |
?
例三、indexOf () 查找5所在的位置,默認索引位置從零開始
| 1 2 3 | [0,1,2,3,4,5,6].indexOf(5);????//?5????從索引0的位置往后查找 [0,1,2,3,4,5,6].indexOf(5,5);??//?5 [0,1,2,3,4,5,6].indexOf(5,10);?//?-1???從索引10的位置往后查找 |
?
例四、lastIndexOf() 查找5所在的位置,默認索引位置當前數組長度減一
| 1 2 3 4 | [0,1,2,3,4,5,6].lastIndexOf(5);???????//?5???從索引位置數組長度減一向前查找 [0,1,2,3,4,5,6].lastIndexOf(5,?6);????//?5 [0,1,2,3,4,5,6].lastIndexOf(5,?10);???//?5 [0,1,2,3,4,5,6].lastIndexOf(5,?1);????//?-1???從索引1的位置向前查找 |
?
例五、includes
| 1 2 3 | [0,1,2,3,4,5,6].includes(5);?????????????????//?true?????從索引0位置往后查找是否存在5元素,是 [0,1,2,3,4,5,6].includes(10);????????????????//?false [0,1,2,3,4,5,6].includes(5,10);??????????????//?false????從索引10位置往后查找是否存在10元素,否 |
?
?
?
?
forEach() 方法對數組的每一個元素執行一次提供的函數。
map() 方法創建一個新數組,其結果是該數組都執行一次函數,原函數保持不變。
filter() 方法使指定函數測試數組的每一個元素,并放回一個通過元素的新數組。
some() 方法測試該數組有元素通過了指定函數的測試,如果有返回true,否則,返回false。
every() 方法測試該數組是否全部通過指定函數測試,全部通過返回true,否則,返回false。
?
forEach 遍歷數組
| 1 2 3 4 5 | var?arr?=?["a",?"b",?"c"]; arr.forEach(function(element,index)?{ ????console.log(element,index);?????? }); |
?
map 返回新數組,為當前元素加字符串m
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | var?arr?=?["a",?"b",?"c"]; arr.map(function(element,index)?{ ????return?element?+=?"m"; }); //?將給定數組的元素轉成整數 ["1",?"2",?"3"].map(parseInt);?????????//?[1,?NaN,?NaN] //?等價于 ["1",?"2",?"3"].map(function(value,index,array){ ????return?parseInt(value,index); }); parseInt(3,1);?????????????????????????//?NaN???parseInt(string,?radix)?函數將給定的字符串以指定基數解析成為整數。 |
?
filter 返回大于10的元素
| 1 2 3 4 5 6 7 | //?12,?130,?44 var?arr?=?[12,?5,?8,?130,?44]; arr.filter(function(value){ ????return?value>10 }); //?等價于 arr.filter((value)=>value>10); |
?
some 判斷當前數組有元素大于10的元素
| 1 2 3 4 | var?arr?=?[12,?5,?8,?130,?44]; arr.some(function(value){??????????????????//?true ????return?value>10 }); |
?
every 判斷當前數組所有元素是否都大于10
| 1 2 3 4 | var?arr?=?[12,?5,?8,?130,?44]; arr.every(function(value){?????????????????//?false ????return?value>10 }); |
轉載于:https://www.cnblogs.com/macliu/p/6549773.html
總結
以上是生活随笔為你收集整理的JavaScript常用数组方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 19:二叉树的镜像
- 下一篇: javascript-基本数据类型和转换