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