电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

JavaScript數(shù)組類型Array相關(guān)的屬性與方法詳解

瀏覽:84日期:2023-06-17 09:23:41

Array數(shù)組類型詳解

在ECMAScript中除了object類型之外,Array數(shù)組用的是最常用的類型。ECMAScript數(shù)組可以在每一項(xiàng)存儲(chǔ)任何類型的值,無需指定數(shù)組的長(zhǎng)度,還可以隨著數(shù)據(jù)的增長(zhǎng)來增加數(shù)組長(zhǎng)度,這些是和其他語(yǔ)言的數(shù)組不同的。

1.數(shù)組的創(chuàng)建方法

數(shù)組字面量方式

var arr = [1,2,3,4,5];// 簡(jiǎn)單直接用中括號(hào)包裹構(gòu)建數(shù)組

數(shù)組構(gòu)造函數(shù)

var arr = new Array(1,2,3,4,5);// 通過內(nèi)置Array對(duì)象構(gòu)建數(shù)組

2.檢測(cè)數(shù)組

instanceof操作符,在全局環(huán)境下可以檢測(cè)對(duì)象是否為數(shù)組,但是如果頁(yè)面上存在多個(gè)框架時(shí)就會(huì)存在兩種以上的全局環(huán)境,這時(shí)候這種方法就有些問題。console.log(arr instanceof Array); // true

Array.isArray()方法就解決了上面的問題,可以快速的檢測(cè)對(duì)象是否為數(shù)組。console.log(Array.isArray(arr)); // true

3.轉(zhuǎn)換方法

使用toString()方法可以使數(shù)組返回字符串。

var arr = [1,2,3,4];console.log(arr.toString()); // 1,2,3,4

toLocaleString()方法也可以實(shí)現(xiàn)

var arr = [1,2,3,4];console.log(arr.toLocaleString()); // 1,2,3,4

4.棧方法

ECMAScript為數(shù)組提供了一種類似于其他語(yǔ)言數(shù)組的方法(棧方法),棧是一種數(shù)據(jù)結(jié)構(gòu),主要講究先進(jìn)后出;

push()方法向數(shù)組末尾添加元素(可以添加多項(xiàng)) pop()方法向末尾刪除最后一項(xiàng)(一次只能刪除一項(xiàng))

var arr = [1,2,3,4]; arr.push(5,6,7); // 向末尾添加5,6,7 console.log(arr); //輸出[1,2,3,4,5,6,7] arr.pop(); // 刪除最后一項(xiàng) console.log(arr); //輸出[1,2,3,4,5,6]

5.隊(duì)列方法

隊(duì)列方法講究先進(jìn)先出,在列表的末尾添加項(xiàng),開頭刪除項(xiàng)。

push()方法上面講到了末尾添加一項(xiàng)或多項(xiàng) shift()方法開頭刪除

var arr = [1,2,3,4]; arr.push(5,6,7); // 向末尾添加5,6,7 console.log(arr); //輸出[1,2,3,4,5,6,7] arr.shift(); // 刪除第一項(xiàng) console.log(arr); //輸出[2,3,4,5,6,7] pop()方法刪除末尾最后一項(xiàng) unshift()方法向開頭添加一項(xiàng)或多項(xiàng)元素

var arr = [1,2,3,4];arr.unshift(5,6,7); // 向開頭添加5,6,7console.log(arr); //輸出[1,2,3,4,5,6,7]arr.pop(); // 刪除最后一項(xiàng)console.log(arr); //輸出[5,6,7,1,2,3]

6.重排序方法

reverse()反轉(zhuǎn)數(shù)組改變順序

var arr = [1,2,3,4,5];arr.reverse();console.log(arr); //輸出[5,4,3,2,1]

sort()方法比較的是字符串,一個(gè)一個(gè)的字符串進(jìn)行比較,數(shù)值小的在前面,

var arr = [1,6,13,40,15];arr.sort();console.log(arr); //輸出[1, 13, 15, 40, 6]

7.操作方法

concat()方法基于當(dāng)前數(shù)組創(chuàng)建一個(gè)副本,向后面添加新的對(duì)象,然后返回新的數(shù)組concat()方法不會(huì)影響原數(shù)組。

var arr = [1,6,13,40,15]; var arr2 = arr.concat(2,2,2); console.log(arr); //輸出[1, 6, 13, 40, 15] console.log(arr2); //輸出[1, 6, 13, 40, 15,2,2,2]

slice()方法可以接受一個(gè)或者兩個(gè)參數(shù),第一個(gè)參數(shù)表示起始位置,第二個(gè)表示結(jié)束位置,slice()方法返回起始位置到結(jié)束位置的數(shù)組slice()方法不會(huì)影響原數(shù)組。

var arr = [1,6,13,40,15]; var arr2 = arr.slice(2); var arr3 = arr.slice(1,3); console.log(arr); //輸出[1,6,13,40,15] console.log(arr2); //輸出[13, 40, 15] console.log(arr3); //輸出[6, 13]

splice()方法,這個(gè)方法在我認(rèn)為算是數(shù)組里面最強(qiáng)大的方法啦!他可以傳入三個(gè)參數(shù),第一個(gè)參數(shù)起始位置,第二個(gè)參數(shù)要?jiǎng)h除的項(xiàng),第三個(gè)參數(shù)添加或者替換的對(duì)象??梢岳胹plice()方法對(duì)數(shù)組進(jìn)行刪除、添加、替換等操作splice()方法會(huì)影響原數(shù)組。

var arr = [1,2,3,4,5];// 刪除操作var arr2 = arr.splice(1,3); // 從下標(biāo)為1開始刪除3項(xiàng)console.log(arr); //輸出[1,5] 原數(shù)組只剩下第一位和最后一位console.log(arr2); //輸出[2,3,4] 被刪除的對(duì)象生成數(shù)組

var arr = [1,2,3,4,5]; // 插入var arr2 = arr.splice(1,0,2,2);// 從下標(biāo)1開始插入2,2兩個(gè)對(duì)象console.log(arr); //輸出[1,2,2,2,3,4,5]console.log(arr2); //輸出[] 因?yàn)闆]有刪除對(duì)象所以返回空數(shù)組

var arr = [1,2,3,4,5]; // 替換var arr2 = arr.splice(1,2,2,2); // 從下標(biāo)1開始先刪除兩項(xiàng)然后替換為2,2console.log(arr); //輸出[1,2,2,4,5]console.log(arr2); //輸出[2,3] 被刪除的元素

8.位置方法

查找數(shù)組位置方法有兩種,indexOf()和lastIndexOf()方法都可以接收兩個(gè)參數(shù),要查找的項(xiàng)和(可選)查找起始項(xiàng)位置的索引。indexOf()是從前往后找,lastIndexOf()是從后往前找。

var arr = [1,2,3,4,5]; console.log(arr.indexOf(2)); //1 返回下標(biāo)的位置 console.log(arr.indexOf(2,3)); //-1 從下標(biāo)3位置開始往后找,沒有找到2返回-1 console.log(arr.lastIndexOf(2,3)); //1 從下標(biāo)3位置開始往前找

9.迭代方法

ECMAScript5為數(shù)組提供了五種迭代方法,每種方法都有兩個(gè)參數(shù),要在每一項(xiàng)上運(yùn)行的函數(shù)和(可選)運(yùn)行該函數(shù)的作用域?qū)ο蟆绊憈his的值。傳入這些方法的函數(shù)會(huì)接受三個(gè)形參(item,index,array):數(shù)組項(xiàng)的值、數(shù)組對(duì)象在數(shù)組中的位置、數(shù)組對(duì)象本身。

every()給定函數(shù)后,如果該函數(shù)對(duì)每一項(xiàng)都返回true,則返回true。

var arr = [1,2,3,4,5];var arr2 = arr.every(function(item,index,array){ return item > 3;});console.log(arr2); // false 必需每項(xiàng)都滿足條件才可以

filter()給定函數(shù)后,返回true的項(xiàng)組成的數(shù)組。

var arr = [1,2,3,4,5]; var arr2 = arr.filter(function(item,index,array){ return item > 3; }); console.log(arr2); // 4,5 只有4,5滿足條件

forEach() 給定函數(shù)后,這個(gè)方法沒有返回值。本質(zhì)上和for循環(huán)一樣

var arr = [1,2,3,4,5];arr.forEach(function(item,index,array){ console.log(item); // 1,2,3,4,5});console.log(arr); // [1,2,3,4,5] 不會(huì)改變?cè)瓟?shù)組也沒有返回值

map()給定函數(shù)后,返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。

var arr = [1,2,3,4,5];var arr2 = arr.map(function(item,index,array){ return item * 2;});console.log(arr2); // [2,4,6,8,10]

some()給定函數(shù)后,如果該函數(shù)任一項(xiàng)返回true,則返回true。

var arr = [1,2,3,4,5]; var arr2 = arr.some(function(item,index,array){ return item > 4; }); console.log(arr2); // true 5>4返回true

10.縮小方法

ECMAScript5新增了2兩個(gè)縮小數(shù)組的方法,reduce()和reduceRight()。這兩個(gè)方法都會(huì)迭代數(shù)組所有的項(xiàng),reduce()是從第一項(xiàng)到最后一項(xiàng)迭代,reduceRight()則是相反的。這兩個(gè)方法可以接收兩個(gè)參數(shù),要執(zhí)行的函數(shù)和(可選)做為縮小基礎(chǔ)的初始值。執(zhí)行函數(shù)可以傳入四個(gè)參數(shù)(prev,cur,index,array):前一個(gè)值、當(dāng)前值、數(shù)組對(duì)象索引、數(shù)組對(duì)象本身。

var arr = [1,2,3,4,5];var arr2 = arr.reduce(function(prev,cur,index,array){ return prev * cur;});console.log(arr2); // 120 前一項(xiàng)乘后一項(xiàng)

總結(jié)

到此這篇關(guān)于JavaScript數(shù)組類型Array相關(guān)的屬性與方法的文章就介紹到這了,更多相關(guān)js數(shù)組Array的屬性與方法內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: JavaScript
相關(guān)文章:
主站蜘蛛池模板: Magnescale探规,Magnescale磁栅尺,Magnescale传感器,Magnescale测厚仪,Mitutoyo光栅尺,笔式位移传感器-苏州连达精密量仪有限公司 | 提升海外网站流量,增加国外网站访客UV,定制海外IP-访客王 | 广东泵阀展|阀门展-广东国际泵管阀展览会 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 无味渗透剂,泡沫抑尘剂,烷基糖苷-威海威能化工有限公司 | 直齿驱动-新型回转驱动和回转支承解决方案提供商-不二传动 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 青岛美佳乐清洁工程有限公司|青岛油烟管道清洗|酒店|企事业单位|学校工厂厨房|青岛油烟管道清洗 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | 上海赞永| 石磨面粉机|石磨面粉机械|石磨面粉机组|石磨面粉成套设备-河南成立粮油机械有限公司 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | 中宏网-今日新闻-财经新闻| 机械加工_绞车配件_立式离心机_减速机-洛阳三永机械厂 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 仿古瓦,仿古金属瓦,铝瓦,铜瓦,铝合金瓦-西安东申景观艺术工程有限公司 | 传爱自考网_传爱自学考试网| 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | 佛山市钱丰金属不锈钢蜂窝板定制厂家|不锈钢装饰线条|不锈钢屏风| 电梯装饰板|不锈钢蜂窝板不锈钢工艺板材厂家佛山市钱丰金属制品有限公司 | 高压微雾加湿器_工业加湿器_温室喷雾-昌润空气净化设备 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | MVR蒸发器厂家-多效蒸发器-工业废水蒸发器厂家-康景辉集团官网 | 四合院设计_四合院装修_四合院会所设计-四合院古建设计与建造中心1 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 云南标线|昆明划线|道路标线|交通标线-就选云南云路施工公司-云南云路科技有限公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 | 电镀整流器_微弧氧化电源_高频电解电源_微弧氧化设备厂家_深圳开瑞节能 | 冷却塔减速机器_冷却塔皮带箱维修厂家_凉水塔风机电机更换-广东康明冷却塔厂家 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 铸铝门厂家,别墅大门庭院大门,别墅铸铝门铜门[十大品牌厂家]军强门业 | 中央空调维修、中央空调保养、螺杆压缩机维修-苏州东菱空调 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 福州甲醛检测-福建室内空气检测_环境检测_水质检测-福建中凯检测技术有限公司 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | Q361F全焊接球阀,200X减压稳压阀,ZJHP气动单座调节阀-上海戎钛 | 板材品牌-中国胶合板行业十大品牌-环保板材-上海声达板材 | 九州网址_专注于提供网址大全分享推广中文网站导航服务 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 考勤系统_人事考勤管理系统_本地部署BS考勤系统_考勤软件_天时考勤管理专家 | 宜兴紫砂壶知识分享 - 宜兴壶人 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 |