摘要:本文記錄關于數組的一些常用方法,搜集總結。對于數組中的每個元素,都會調用函數一次。返回值是一個新數組,其中的每個元素均為關聯的原始數組元素的回調函數返回值。
本文記錄關于js數組的一些常用方法,搜集總結。
主要思路: 1. 方法功能是什么 2. 傳遞的參數是什么 3. 返回值是什么 4. 原來的數組是否改變第一組:關于數組的增加、刪除和修改 1.push 向數組末尾增加新的內容,返回的是添加后新數組的長度,原有的數組改變了
var arr=[10,11,12,13,14,15]; var res=arr.push(16,17); console.log(res); //8 console.log(arr); //[10,11,12,13,14,15,16,17]2.unshift 向數組的開頭增加新的內容,返回的是添加后新數組的長度,原來的數組也改變
var res=arr.unshift(16,17); console.log(res); //83.splice(n,m,x) 把原有數組中的某些項進行替換。(先刪除,然后用x替換)。從所以n(包含n)開始,向后刪除m個元素,用x替換,返回刪除的數組
原有數組改變規律:
splice(0,0,x) 相當于unshift,splice(arr.length,0,x) 相當于push,splice(n,0,x) 向數組中間某個位置添加新的內容 從索引n開始,刪除0個內容,把新增的內容x放在索引n的前面。返回的是一個空數組,原有數組改變n開始的索引splice(n,m) 刪除數組指定項,從所以n(包含n)開始,向后刪除m個元素 ,把刪除的內容當做新數組返回,原有數組改變
var res=arr.splice(2,0,"michael"); //在12后面添加“michael" console.log(arr);4.pop 刪除數組最后一個,返回的是刪除的那一項,原有數組改變。shift 刪除數組第一個,返回的是刪除的那一項,原有數組改變 第二組:數組的查詢和復制 5.slice(n,m) 從索引n(包含n)開始找到索引m(不包含m)處。把找到的內容作為一個新的數組返回,原有數組是不改變的。
javascript var arr=[10,11,12,13,14,15]; var res=arr.slice(1,4); console.log(res); //[11, 12, 13] console.log(arr); //[10, 11, 12, 13, 14, 15] slice(n) 從索引n(包含n)開始找到末尾 slice(0) // slice() 將原來數組原封不動的復制一份,數組clone6. concat 本意是實現數組的拼接的 arr1.concat(arr2) 將數組arr2和數組arr1合并成新的數組,原來的數組也不變
concat也可以是數組的克隆,原來的數組也改變(相當于slice(0))
var arr1=[10,11,12,13,14,15]; var arr2=[16,17]; var res=arr1.concat(arr2); console.log(arr1); //[10, 11, 12, 13, 14, 15] console.log(res); //[10, 11, 12, 13, 14, 15, 16, 17]第三組:將數組轉化為我們的字符串 7.toString 把數組中的每一項拿出來,用逗號隔開,組成字符串,原有數組不變
javascript var arr=["name","michael","age","24"]; var res=arr.toString(); console.log(res); //name,michael,age,24 console.log(arr); //["name", "michael", "age", "24"]8.join(分隔符) 把數組中的每一項拿出來,用指定的分隔符隔開,原有數組不變。
var arr=["name","michael","age","24"]; var res=arr.join("|"); console.log(res); //"name|michael|age|24" console.log(res.length); //19 console.log(arr); //["name", "michael", "age", "24"] console.log(arr.length); //4
例:實現數組中數字的求和
var arr=[10,11,12,13,14,15]; var str=arr.join("+"); //"10+11+12+13+14+15" var total=eval(str); //eval 將指定的字符串變成真正的額表達式執行 console.log(total); //75 console.log(arr); //[10, 11, 12, 13, 14, 15]第四組:排列和排序 9.reverse 數組倒過來排列,原有數組改變。
var arr=[10,11,12,13,14,15]; console.log(arr); //[10, 11, 12, 13, 14, 15] var res=arr.reverse(); //"10+11+12+13+14+15" console.log(res); //[15, 14, 13, 12, 11, 10]10.sort 數組的排序,可以實現由大到小(由小到大),原有的數組也變
直接寫sort只能處理10以內的數字排序,處理10以上的我們需要傳遞一個參數,這個參數必須是函數
var arr=[10,12,11,19,13,15,6]; console.log(arr); //[10, 12, 11, 19, 13, 15,6] var res=arr.sort(); console.log(res); //[10, 11, 12, 13, 15, 19, 6]
改進:
var arr=[10,12,11,19,13,15,6]; console.log(arr); //[10, 12, 11, 19, 13, 15,6] var res1=arr.sort(function(a,b){return a-b;}); //實現由小到大 console.log(res1); var res2=arr.sort(function(a,b){return b-a;}) //實現由大到小 console.log(res2); //[10, 11, 12, 13, 15, 19, 6] var arr=[10,12,11,19,13,6]; console.log(arr); //[10, 12, 11, 19, 13, 15,6] var res1=arr.sort(function(a,b){ //a表示每一次循環的時候的當前項,b是后面的項 //return a-b;當前項減去后一項,如果大于0,代表前面的比后面的大,這樣的話就交換位置 //冒泡排序:sort實現排序,就是遵循冒泡排序的思想實現的 console.log(a+"<====>"+b); return a-b;}); //實現由小到大第五組:一些常用但不兼容 11.indexOf array1.indexOf(searchElement[, fromIndex])
fromIndex可選 用于開始搜索的數組索引。 如果省略 fromIndex,則從索引 0 處開始搜索。
數組中的 searchElement 的第一個匹配項的索引;如果未找到 searchElement,則為 -1。
var arr=["hello","michael","good","study"]; var p=arr.indexOf("mi",0); console.log(p); //-112.forEach array1.forEach(callbackfn[, thisArg])
callbackfn 必選。 最多可以接受三個參數的函數。 對于數組中的每個元素,forEach 都會調用 callbackfn 函數一次。
thisArg 可選。 callbackfn 函數中的 this 關鍵字可引用的對象。 如果省略 thisArg,則 undefined 將用作 this 值。
如果 callbackfn 參數不是函數對象,則將引發 TypeError 異常。
對于數組中出現的每個元素,forEach 方法都會調用 callbackfn 函數一次(采用升序索引順序)。 將不會為數組中缺少的元素調用回調函數。
除了數組對象之外,forEach 方法可由具有 length 屬性且具有已按數字編制索引的屬性名的任何對象使用。
回調函數的語法:function callbackfn(value, index, array1):
參數 | 參數說明 |
---|---|
value | 數組元素的值 |
index | 數組元素的數字索引 |
array1 | 包含該元素的數組對象 |
// Create an array. var numbers = [10, 11, 12]; // Call the addNumber callback function for each array element. var sum = 0; numbers.forEach( function addNumber(value) { sum += value; } ); document.write(sum); // Output: 33
https://msdn.microsoft.com/zh-cn/library/ff679980(v=vs.94).aspx
13.map array1.map(callbackfn[, thisArg])callbackfn 必選。 最多可以接受三個參數的函數。 對于數組中的每個元素(不會對undefined元素調用),map 方法都會調用 callbackfn 函數一次。
[, thisArg] 可選。 callbackfn 函數中的 this 關鍵字可引用的對象。 如果省略 thisArg,則 undefined 將用作 this 值。
返回值是一個新數組,其中的每個元素均為關聯的原始數組元素的回調函數返回值。如果 callbackfn 參數不是函數對象,則將引發 TypeError 異常。
對于數組中的每個元素,map 方法都會調用 callbackfn 函數一次(采用升序索引順序)。 將不會為數組中缺少的元素調用回調函數。除了數組對象之外,map 方法可由具有 length 屬性且具有已按數字編制索引的屬性名的任何對象使用。
回調函數的語法如下所示:function callbackfn(value, index, array1):
參數 | 參數說明 |
---|---|
value | 數組元素的值 |
index | 數組元素的數字索引 |
array1 | 包含該元素的數組對象 |
// Define the callback function. function AreaOfCircle(radius) { var area = Math.PI * (radius * radius); return area.toFixed(0); } // Create an array. var radii = [10, 20, 30]; // Get the areas from the radii. var areas = radii.map(AreaOfCircle); document.write(areas); // Output: // 314,1257,2827 */
本文記錄關于js數組的一些常用方法,搜集總結,如有不妥,望指正。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/85739.html
摘要:示例語法作用方法用于刪除并返回數組的最后一個元素。返回值一個新的字符串,該字符串值包含的一個子字符串,其內容是從處到處的所有字符,其長度為減。返回值一個新的字符串,包含從的包括所指的字符處開始的個字符。 1.concat()語法:arrayObject.concat(array1,array2,......,arrayn)作用:concat() 方法用于連接兩個或多個數組。特征:該方法...
摘要:檢測數組或者檢測對象的原型鏈是否指向構造函數的對象或者終極大招注意不可以用此方法檢查常用方法合并多個數組,返回合并后的新數組,原數組沒有變化。返回值是由被刪除的元素組成的一個數組。 定義數組 const array = [1, 2, 3]; 或者 const array = new Array(); array[0] = 1; 建議盡量使用第一種形式定義數組,采用new的形式在大量的數...
摘要:檢測數組或者檢測對象的原型鏈是否指向構造函數的對象或者終極大招注意不可以用此方法檢查常用方法合并多個數組,返回合并后的新數組,原數組沒有變化。返回值是由被刪除的元素組成的一個數組。 定義數組 const array = [1, 2, 3]; 或者 const array = new Array(); array[0] = 1; 建議盡量使用第一種形式定義數組,采用new的形式在大量的數...
閱讀 1907·2021-11-23 09:51
閱讀 1550·2021-11-19 09:40
閱讀 3223·2021-11-11 11:01
閱讀 1122·2021-09-27 13:34
閱讀 1854·2021-09-22 15:56
閱讀 2138·2019-08-30 15:52
閱讀 1074·2019-08-30 14:13
閱讀 3487·2019-08-30 14:10