摘要:本文記錄關(guān)于數(shù)組的一些常用方法,搜集總結(jié)。對于數(shù)組中的每個(gè)元素,都會(huì)調(diào)用函數(shù)一次。返回值是一個(gè)新數(shù)組,其中的每個(gè)元素均為關(guān)聯(lián)的原始數(shù)組元素的回調(diào)函數(shù)返回值。
本文記錄關(guān)于js數(shù)組的一些常用方法,搜集總結(jié)。
主要思路: 1. 方法功能是什么 2. 傳遞的參數(shù)是什么 3. 返回值是什么 4. 原來的數(shù)組是否改變第一組:關(guān)于數(shù)組的增加、刪除和修改 1.push 向數(shù)組末尾增加新的內(nèi)容,返回的是添加后新數(shù)組的長度,原有的數(shù)組改變了
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 向數(shù)組的開頭增加新的內(nèi)容,返回的是添加后新數(shù)組的長度,原來的數(shù)組也改變
var res=arr.unshift(16,17); console.log(res); //83.splice(n,m,x) 把原有數(shù)組中的某些項(xiàng)進(jìn)行替換。(先刪除,然后用x替換)。從所以n(包含n)開始,向后刪除m個(gè)元素,用x替換,返回刪除的數(shù)組
原有數(shù)組改變規(guī)律:
splice(0,0,x) 相當(dāng)于unshift,splice(arr.length,0,x) 相當(dāng)于push,splice(n,0,x) 向數(shù)組中間某個(gè)位置添加新的內(nèi)容 從索引n開始,刪除0個(gè)內(nèi)容,把新增的內(nèi)容x放在索引n的前面。返回的是一個(gè)空數(shù)組,原有數(shù)組改變n開始的索引splice(n,m) 刪除數(shù)組指定項(xiàng),從所以n(包含n)開始,向后刪除m個(gè)元素 ,把刪除的內(nèi)容當(dāng)做新數(shù)組返回,原有數(shù)組改變
var res=arr.splice(2,0,"michael"); //在12后面添加“michael" console.log(arr);4.pop 刪除數(shù)組最后一個(gè),返回的是刪除的那一項(xiàng),原有數(shù)組改變。shift 刪除數(shù)組第一個(gè),返回的是刪除的那一項(xiàng),原有數(shù)組改變 第二組:數(shù)組的查詢和復(fù)制 5.slice(n,m) 從索引n(包含n)開始找到索引m(不包含m)處。把找到的內(nèi)容作為一個(gè)新的數(shù)組返回,原有數(shù)組是不改變的。
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() 將原來數(shù)組原封不動(dòng)的復(fù)制一份,數(shù)組clone6. concat 本意是實(shí)現(xiàn)數(shù)組的拼接的 arr1.concat(arr2) 將數(shù)組arr2和數(shù)組arr1合并成新的數(shù)組,原來的數(shù)組也不變
concat也可以是數(shù)組的克隆,原來的數(shù)組也改變(相當(dāng)于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]第三組:將數(shù)組轉(zhuǎn)化為我們的字符串 7.toString 把數(shù)組中的每一項(xiàng)拿出來,用逗號隔開,組成字符串,原有數(shù)組不變
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(分隔符) 把數(shù)組中的每一項(xiàng)拿出來,用指定的分隔符隔開,原有數(shù)組不變。
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
例:實(shí)現(xiàn)數(shù)組中數(shù)字的求和
var arr=[10,11,12,13,14,15]; var str=arr.join("+"); //"10+11+12+13+14+15" var total=eval(str); //eval 將指定的字符串變成真正的額表達(dá)式執(zhí)行 console.log(total); //75 console.log(arr); //[10, 11, 12, 13, 14, 15]第四組:排列和排序 9.reverse 數(shù)組倒過來排列,原有數(shù)組改變。
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 數(shù)組的排序,可以實(shí)現(xiàn)由大到小(由小到大),原有的數(shù)組也變
直接寫sort只能處理10以內(nèi)的數(shù)字排序,處理10以上的我們需要傳遞一個(gè)參數(shù),這個(gè)參數(shù)必須是函數(shù)
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]
改進(jìn):
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;}); //實(shí)現(xiàn)由小到大 console.log(res1); var res2=arr.sort(function(a,b){return b-a;}) //實(shí)現(xiàn)由大到小 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表示每一次循環(huán)的時(shí)候的當(dāng)前項(xiàng),b是后面的項(xiàng) //return a-b;當(dāng)前項(xiàng)減去后一項(xiàng),如果大于0,代表前面的比后面的大,這樣的話就交換位置 //冒泡排序:sort實(shí)現(xiàn)排序,就是遵循冒泡排序的思想實(shí)現(xiàn)的 console.log(a+"<====>"+b); return a-b;}); //實(shí)現(xiàn)由小到大第五組:一些常用但不兼容 11.indexOf array1.indexOf(searchElement[, fromIndex])
fromIndex可選 用于開始搜索的數(shù)組索引。 如果省略 fromIndex,則從索引 0 處開始搜索。
數(shù)組中的 searchElement 的第一個(gè)匹配項(xiàng)的索引;如果未找到 searchElement,則為 -1。
var arr=["hello","michael","good","study"]; var p=arr.indexOf("mi",0); console.log(p); //-112.forEach array1.forEach(callbackfn[, thisArg])
callbackfn 必選。 最多可以接受三個(gè)參數(shù)的函數(shù)。 對于數(shù)組中的每個(gè)元素,forEach 都會(huì)調(diào)用 callbackfn 函數(shù)一次。
thisArg 可選。 callbackfn 函數(shù)中的 this 關(guān)鍵字可引用的對象。 如果省略 thisArg,則 undefined 將用作 this 值。
如果 callbackfn 參數(shù)不是函數(shù)對象,則將引發(fā) TypeError 異常。
對于數(shù)組中出現(xiàn)的每個(gè)元素,forEach 方法都會(huì)調(diào)用 callbackfn 函數(shù)一次(采用升序索引順序)。 將不會(huì)為數(shù)組中缺少的元素調(diào)用回調(diào)函數(shù)。
除了數(shù)組對象之外,forEach 方法可由具有 length 屬性且具有已按數(shù)字編制索引的屬性名的任何對象使用。
回調(diào)函數(shù)的語法:function callbackfn(value, index, array1):
參數(shù) | 參數(shù)說明 |
---|---|
value | 數(shù)組元素的值 |
index | 數(shù)組元素的數(shù)字索引 |
array1 | 包含該元素的數(shù)組對象 |
// 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 必選。 最多可以接受三個(gè)參數(shù)的函數(shù)。 對于數(shù)組中的每個(gè)元素(不會(huì)對undefined元素調(diào)用),map 方法都會(huì)調(diào)用 callbackfn 函數(shù)一次。
[, thisArg] 可選。 callbackfn 函數(shù)中的 this 關(guān)鍵字可引用的對象。 如果省略 thisArg,則 undefined 將用作 this 值。
返回值是一個(gè)新數(shù)組,其中的每個(gè)元素均為關(guān)聯(lián)的原始數(shù)組元素的回調(diào)函數(shù)返回值。如果 callbackfn 參數(shù)不是函數(shù)對象,則將引發(fā) TypeError 異常。
對于數(shù)組中的每個(gè)元素,map 方法都會(huì)調(diào)用 callbackfn 函數(shù)一次(采用升序索引順序)。 將不會(huì)為數(shù)組中缺少的元素調(diào)用回調(diào)函數(shù)。除了數(shù)組對象之外,map 方法可由具有 length 屬性且具有已按數(shù)字編制索引的屬性名的任何對象使用。
回調(diào)函數(shù)的語法如下所示:function callbackfn(value, index, array1):
參數(shù) | 參數(shù)說明 |
---|---|
value | 數(shù)組元素的值 |
index | 數(shù)組元素的數(shù)字索引 |
array1 | 包含該元素的數(shù)組對象 |
// 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 */
本文記錄關(guān)于js數(shù)組的一些常用方法,搜集總結(jié),如有不妥,望指正。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/85739.html
摘要:示例語法作用方法用于刪除并返回?cái)?shù)組的最后一個(gè)元素。返回值一個(gè)新的字符串,該字符串值包含的一個(gè)子字符串,其內(nèi)容是從處到處的所有字符,其長度為減。返回值一個(gè)新的字符串,包含從的包括所指的字符處開始的個(gè)字符。 1.concat()語法:arrayObject.concat(array1,array2,......,arrayn)作用:concat() 方法用于連接兩個(gè)或多個(gè)數(shù)組。特征:該方法...
摘要:檢測數(shù)組或者檢測對象的原型鏈?zhǔn)欠裰赶驑?gòu)造函數(shù)的對象或者終極大招注意不可以用此方法檢查常用方法合并多個(gè)數(shù)組,返回合并后的新數(shù)組,原數(shù)組沒有變化。返回值是由被刪除的元素組成的一個(gè)數(shù)組。 定義數(shù)組 const array = [1, 2, 3]; 或者 const array = new Array(); array[0] = 1; 建議盡量使用第一種形式定義數(shù)組,采用new的形式在大量的數(shù)...
摘要:檢測數(shù)組或者檢測對象的原型鏈?zhǔn)欠裰赶驑?gòu)造函數(shù)的對象或者終極大招注意不可以用此方法檢查常用方法合并多個(gè)數(shù)組,返回合并后的新數(shù)組,原數(shù)組沒有變化。返回值是由被刪除的元素組成的一個(gè)數(shù)組。 定義數(shù)組 const array = [1, 2, 3]; 或者 const array = new Array(); array[0] = 1; 建議盡量使用第一種形式定義數(shù)組,采用new的形式在大量的數(shù)...
摘要:題目來源前端實(shí)習(xí)生面試總結(jié)最近開始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄下來進(jìn)行一個(gè)總結(jié),同樣也希望對正在準(zhǔn)備面實(shí)習(xí)生的童鞋們有所幫助最后一個(gè)參數(shù)是做什么用的答規(guī)定事件是冒泡還是捕獲。 最近一直在多看基礎(chǔ)的書多碼代碼準(zhǔn)備找實(shí)習(xí),在網(wǎng)上也搜羅了不少面經(jīng),現(xiàn)在把搜羅到的實(shí)習(xí)生面試題自己整理一下。 題目來源:前端實(shí)習(xí)生面試總結(jié)最近開始了幾次面試,雖然還不知道結(jié)果如何,但是還是要記錄...
閱讀 1905·2021-11-23 09:51
閱讀 1549·2021-11-19 09:40
閱讀 3221·2021-11-11 11:01
閱讀 1120·2021-09-27 13:34
閱讀 1852·2021-09-22 15:56
閱讀 2136·2019-08-30 15:52
閱讀 1071·2019-08-30 14:13
閱讀 3487·2019-08-30 14:10