摘要:將數(shù)組中每個(gè)元素轉(zhuǎn)化為字符串,并用值銜接起來(lái)作用銜接數(shù)組參數(shù)可以是一個(gè)元素或一個(gè)數(shù)組數(shù)組取的是元素返回值一個(gè)銜接的新數(shù)組。負(fù)數(shù)從數(shù)組尾部開(kāi)始計(jì)算,表示最后一位,表示倒數(shù)第二位返回值到之間的新數(shù)組。
本文是對(duì)數(shù)組的常規(guī)方法做一個(gè)記錄。
數(shù)組的基本方法除concat、slice外都會(huì)對(duì)原數(shù)組進(jìn)行修改
數(shù)組的創(chuàng)建var arr = new Array(12);// 創(chuàng)建一個(gè)長(zhǎng)度為12的數(shù)組,值為undefined var arr1 = new Array(1,2,3); var arr2 = [1,2,3]; //arr1=arr2length
數(shù)組的長(zhǎng)度可以讀取,也可設(shè)置
var arr = [1,2,3]; arr.length; //3 arr.length=0; //[]Array.indexOf("value",index)
作用:在數(shù)組中查找給定元素(從左往右找)
參數(shù):value-要查找的值;index-從第index位開(kāi)始查找;index省略從頭開(kāi)始搜索,負(fù)數(shù)代表相對(duì)數(shù)組末尾的偏移量
返回值:找到,返回第一個(gè)匹配元素的索引;沒(méi)有找到返回-1
var arr=[1,2,3,4,2,3]; arr.indexOf();//=>-1 arr.indexOf(2,1);//=>1 arr.indexOf(2,7);//=>-1 arr.indexOf(5);//=>-1 arr.indexOf(2,-2);//=>4 arr.indexOf(2,-6);//=>1 負(fù)數(shù)超出范圍都找的1 arr.indexOf(2,-11);//=>1 從第-5位往右找
查找數(shù)組中所有的x,并返回其下標(biāo)
function findAll(x,arr){ var i=0; var results=[]; while(arr.indexOf(x,i) != -1){ results.push(arr.indexOf(x,i)); i = arr.indexOf(x,i)+x.length; } return results; }Array.lastIndexOf("value",index)
作用:在數(shù)組中查找給定元素(從右往左找)
參數(shù):value-要查找的值;index-從第index位開(kāi)始查找;index省略從尾開(kāi)始搜索,負(fù)數(shù)代表相對(duì)數(shù)組末尾的偏移量
返回值:找到,返回第一個(gè)匹配元素的索引;沒(méi)有找到返回-1
var arr=[1,2,3,4,2,3]; arr.lastIndexOf();//=>-1 arr.lastIndexOf(2,1);//=>1 arr.lastIndexOf(2,0);//=>-1 arr.lastIndexOf(2,7);//=>4 正數(shù)超出范圍都找的是4 arr.lastIndexOf(2,-2);//=>4 從第4位往左找 arr.lastIndexOf(2,-6);//=>-1 從第0位往左找 arr.lastIndexOf(2,-11);//=>-1 從第-5位往左找Array.join("value")
作用:將數(shù)組轉(zhuǎn)為字符串
參數(shù):value-數(shù)組元素間連接符;省略時(shí)默認(rèn)為(,)
返回值:一個(gè)字符串。將數(shù)組中每個(gè)元素轉(zhuǎn)化為字符串,并用value值銜接起來(lái)
var arr=[1,2,3]; arr.join();//=>"1,2,3" arr.join("");//=>"123" var arr1=new Array(3); arr1.join("-"); //=>"--"Array.concat("value")
作用:銜接數(shù)組
參數(shù):value-可以是一個(gè)元素或一個(gè)數(shù)組(數(shù)組取的是元素)
返回值:一個(gè)銜接value的新數(shù)組。不會(huì)修改調(diào)用的數(shù)組
var arr=[1,2,3]; arr.concat(4,5);//=>[1,2,3,4,5] arr.concat([4,5]);//=>[1,2,3,4,5] arr.concat([4,[5,[6,7]]]);//=>[1,2,3,4,[5,[6,7]]]Array.push()、Array.pop()、Array.shift()、Array.unshift()
作用: 1.添加元素: 返回新數(shù)組長(zhǎng)度
push:數(shù)組末尾添加元素; unshift:數(shù)組開(kāi)頭添加元素;一次性插入
2.刪除元素: 返回刪除的數(shù)據(jù)
pop:刪除數(shù)組最后一個(gè)元素; shift:刪除數(shù)組第一個(gè)元素;
var arr=[1,2,3]; arr.push([4,5]);//=>[1,2,3,[4,5]] 返回4 arr.shift();//=>[2,3,[4,5]] 返回1Array.slice(start,end)
作用:返回?cái)?shù)組一部分
參數(shù):start-開(kāi)始序號(hào),end-結(jié)束序號(hào)。end省略默認(rèn)到最后一位。負(fù)數(shù)從數(shù)組尾部開(kāi)始計(jì)算,-1表示最后一位,-2表示倒數(shù)第二位
返回值:start到end之間的新數(shù)組[start,end)。不會(huì)修改調(diào)用的數(shù)組
var arr=[1,2,3,4,5]; arr.slice(0,3);//=>[1,2,3] arr.slice(3);//=>[4] arr.slice(1,-1);//=>[2,3,4] arr.slice(-3,-2);//=>[3] arr.slice(-8,3);//=>[1,2,3] arr.slice(3,0);//=>[] 截取不到返回空數(shù)組,從小到大,不交換Array.splice(start,deleteCount,value,...)
作用:添加、刪除和替換數(shù)組元素
參數(shù):start-數(shù)組元素序號(hào)
deleteCount-要?jiǎng)h除元素的個(gè)數(shù) value-要插入數(shù)組中的0個(gè)或多個(gè)值
返回值:刪除元素返回包含刪除元素的新數(shù)組;添加或替換返回空數(shù)組
var arr=[1,2,3,4,5,6,7,8]; arr.splice(4);//=>返回[5,6,7,8]a為[1,2,3,4] arr.splice(1,0,2,3);//=>返回[] a為[1,2,3,2,3,4] arr.splice(1,1,5);//=>返回[2] a為[1,5,3,2,3,4]Array.sort(orderfunc)
作用:對(duì)數(shù)組元素排序
參數(shù):可選函數(shù)。不帶參數(shù)按字符編碼排序
arr.sort(function(a,b){ return a-b; //從小到大 //return b-a; 從大到小 // return Math.random()-0.5; 隨機(jī)排序 })Array.reverse()
作用:顛倒數(shù)組元素,逆序
var arr=[1,2,3]; arr.reverse(); //[3,2,1]Array.toString()
作用:將數(shù)組轉(zhuǎn)為字符串,與join不傳參數(shù)一樣
參數(shù):可選函數(shù)。不帶參數(shù)按字符編碼排序
[1,2,3].toString(); //"1,2,3" [1,[2,"c"]].toString(); //"1,2,c"ES5中數(shù)組方法
均不會(huì)改變?cè)瓟?shù)組
Array.forEach()作用:遍歷數(shù)組,為每個(gè)元素調(diào)用指定函數(shù)
注意:forEach不能在所有元素傳遞給函數(shù)前終止遍歷
var arr=[1,2,3]; arr.forEach(function(item,index,arr){ arr[index] = item+1; }) arr=>[2,3,4]Array.map()
作用:將數(shù)組每個(gè)元素傳遞給用指定函數(shù)
注意:傳遞給map的函數(shù)應(yīng)有返回值,不修改原數(shù)組,返回的是新數(shù)組
var arr=[1,2,3]; b=arr.map(function(item,index,arr){ return x*x; }) //[1,4,9]Array.filter()
作用:返回過(guò)濾后數(shù)組的一部分
刪除數(shù)組中undefined和null a = a.filter(function(item){ return item!==undefined && item!==null; })Array.every()
作用:對(duì)數(shù)組元素應(yīng)用指定函數(shù)進(jìn)行檢測(cè)
返回值:所有元素均滿足條件,返回true;否則false
注意:every和some一旦能確認(rèn)返回什么值,就會(huì)停止遍歷
var arr = [1,2,3] arr.every(function(item){ return item<5; }) //trueArray.some()
作用:對(duì)數(shù)組元素應(yīng)用指定函數(shù)進(jìn)行檢測(cè)
返回值:有一個(gè)元素滿足條件,返回true
注意:空數(shù)組,調(diào)用every()返回true;調(diào)用some返回false
作用:使用指定函數(shù)將數(shù)組進(jìn)行組合,返回一個(gè)值(從左往右)
參數(shù):fn-指定函數(shù),value-傳遞給函數(shù)的初值
一個(gè)參數(shù):
第一次的兩個(gè)值分別為數(shù)組的第一、二個(gè)元素,其結(jié)果作為第二次的第一個(gè)值
兩個(gè)參數(shù):
第一次的值為value和數(shù)組第一個(gè)元素,其結(jié)果作為第二次的第一個(gè)值
var arr = [1,2,3,4,5] var sum = arr.reduce(function(prev,cur,index,arr){ return prev+cur; },0) var max = arr.reduce(function(x,y){ return (x>y)?x:y; })Array.reduceRight(fn,value)
作用:使用指定函數(shù)將數(shù)組進(jìn)行組合,返回一個(gè)值(從右往左)
ES6對(duì)數(shù)組方法的擴(kuò)展()參考http://es6.ruanyifeng.com/#do...
Array.form(arr,fn)作用:將類數(shù)組對(duì)象和可遍歷對(duì)象轉(zhuǎn)為真正的數(shù)組。如nodeList、argument等
參數(shù):arr為類數(shù)組或集合,fn函數(shù)作用類似map方法
注意:只要部署了Iterator接口的數(shù)據(jù)結(jié)構(gòu),都能將其轉(zhuǎn)為數(shù)組。字符串和set結(jié)構(gòu)都可以轉(zhuǎn)為數(shù)組
let arrLike={ "0":"a", "1":"b", "2":"c", length:3 } var arr1=[].slice.call(arrLike); //es5 var arr2=Array.from(arrLike); Array.form([1,2,3],(x)=>x*x) //[1,4,9] Array.form("abc"); //["a","b","c"]Array.of(value)
作用:將一組值轉(zhuǎn)為數(shù)組,彌補(bǔ)Array()因參數(shù)的個(gè)數(shù)不同結(jié)果不同的不足
Array(3) //[,,,] Array.of(3) //[3] Array() //[] Array.of() //[]Array.fill(value,start,end)
作用:使用給定的value,填充一個(gè)數(shù)組
參數(shù):value要填充的值,start-end從start到end進(jìn)行填充
[1,2,3].fill(5); //[5,5,5] [1,2,3].fill(4,1,2); //[1,4,3]數(shù)組檢測(cè)
使用typeOf可以完成對(duì)基本數(shù)據(jù)類型的檢測(cè),對(duì)數(shù)組的檢測(cè)可以使用以下方法:
1、Array.isArray([]) =>true
2、[] instanceOf Array =>true
instanceOf問(wèn)題:web瀏覽器可能右多個(gè)窗口或frame,每個(gè)窗口都有自己的JavaScript環(huán)境,有自己的全局對(duì)象。每個(gè)全局對(duì)象有自己的構(gòu)造函數(shù),因此一個(gè)窗體中的對(duì)象不可能是另一個(gè)窗口的構(gòu)造函數(shù)實(shí)例, 因此該方法存在一定的問(wèn)題
3、Object.prototype.toString.call([]) == "[object Array]"; =>true
call()和apply()都可以間接地調(diào)用函數(shù),并顯式地修改this值。任何函數(shù)都可以作為任何對(duì)象的方法來(lái)調(diào)用,哪怕這個(gè)函數(shù)不是那個(gè)對(duì)象的方法。如:
Array.join = Array.join || function(a,sep){ return Array.prototype.join.call(a,sep); } Array.prototype.join.call("abc","-"); //a-b-c
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/86524.html
摘要:將指定的數(shù)字索引值轉(zhuǎn)換成字符串索引值變成,然后將其作為屬性名來(lái)用。返回一個(gè)由刪除元素組成的數(shù)組。該方法返回的數(shù)組元素是調(diào)用的數(shù)組的一個(gè)子集。使用的函數(shù)有四個(gè)參數(shù)初始值積累值數(shù)組元素元素索引數(shù)組本身。 前言 很多人在學(xué)習(xí)原生JS的過(guò)程中會(huì)遇到一些疑惑,比如在學(xué)習(xí)array時(shí),就很容易搞不清哪些方法會(huì)改變?cè)瓉?lái)數(shù)組,哪些方法不會(huì)改變?cè)瓉?lái)數(shù)組?再比如很多人會(huì)使用new Date()獲取時(shí)間,卻...
摘要:只有滿足才返回,否則返回。專門用于篩選出數(shù)組中符合函數(shù)判斷條件的元素組成的心數(shù)組。專門用于對(duì)原數(shù)組中每個(gè)元素執(zhí)行相同的函數(shù)對(duì)象規(guī)定的操作。并歸方法將數(shù)組從左向右迭代。 Array類型 數(shù)組的常見(jiàn)方法 檢測(cè)數(shù)組 如何確定當(dāng)前是一個(gè)數(shù)組,JS提供了以下幾種方式1.typeof無(wú)法檢測(cè)數(shù)組對(duì)象:typrof[]返回object2.instanceof:[]instanceof Array返回...
摘要:返回?cái)?shù)組內(nèi)容的字符串表示形式將數(shù)組中每個(gè)元素轉(zhuǎn)為字符串,并用逗號(hào)連接。拍照連接符將數(shù)組中每個(gè)元素轉(zhuǎn)為字符串,用自定義的連接符連接每個(gè)元素需要用變量借助。 關(guān)于數(shù)組篇的記錄,純自己總結(jié),會(huì)持續(xù)更新~ 原生js方法 1:創(chuàng)建數(shù)組的幾種方法: var arr = []; var arr = new Array(); var arr = [1,2]; var arr = new Arr...
摘要:簡(jiǎn)介俗稱,的正式名稱是,是網(wǎng)景公司公司開(kāi)發(fā)的一種基于客戶端瀏覽器基于面向?qū)ο笫录?qū)動(dòng)式的網(wǎng)頁(yè)腳本語(yǔ)言。變量名不能使用關(guān)鍵字變量名對(duì)大小寫(xiě)敏感。 javascript簡(jiǎn)介 javascript俗稱js,js的正式名稱是ECMAScript,是網(wǎng)景公司Netscape公司開(kāi)發(fā)的一種基于客戶端瀏覽器、基于面向?qū)ο?、事件?qū)動(dòng)式的網(wǎng)頁(yè)腳本語(yǔ)言。主要用于:交互式操作,表單驗(yàn)證,網(wǎng)頁(yè)特效,web游...
摘要:如果該函數(shù)的返回值大于,表示第一個(gè)成員排在第二個(gè)成員后面其他情況下,都是第一個(gè)元素排在第二個(gè)元素前面。第三次執(zhí)行,為上一輪的返回值,為第四個(gè)成員。第四次執(zhí)行,為上一輪返回值,為第五個(gè)成員。 JS中ArrayAPI學(xué)習(xí)筆記 記博客,時(shí)?;仡?尤其是面試之先回顧阮一峰標(biāo)準(zhǔn)庫(kù)Array對(duì)象 1 一些標(biāo)準(zhǔn)庫(kù)回顧 showImg(https://segmentfault.com/img/remo...
閱讀 787·2023-04-25 17:33
閱讀 3642·2021-07-29 14:49
閱讀 2489·2019-08-30 15:53
閱讀 3442·2019-08-29 16:27
閱讀 2012·2019-08-29 16:11
閱讀 1039·2019-08-29 14:17
閱讀 2448·2019-08-29 13:47
閱讀 2024·2019-08-29 13:28