日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

JavaScript对象和数组

發布時間:2025/3/14 javascript 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JavaScript对象和数组 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在JavaScript中對象是一種數據結構,用于將數據和功能組織在一起,描述一類對象所具有的屬性和方法。

對象是某個特定類型的實例。新對象是new操作符后跟一個關鍵字來實現的。構造函數本身就是一個函數,用于創建新對象。 var person = new Object();這行代碼創建了一個Object的實例,并將值保存了變量person中。

創建對象的方式有兩種,一種是通過Object函數來創建。

var animal = new Object();animal.eat=function(){console.log("eat");};animal.color="blue";

上面的代碼通過object創建了對象animal,并創建了對象的方法eat以及屬性color。

同時可以通過字面量的方式創建對象。

var animal={eat:function(){console.log("eat");},color:"blue"}

上面通過字面量的方式創建了新對象animal,并創建了方法eat和屬性color。通過字面量創建的對象,并不會調用Object函數。對象可以作為參數傳遞至函數中使用。

function test(args){console.log("Name:"+args.name+"\n");console.log("age:"+args.age+"\n");}test({"name":"haha","age":18});

函數test接收了args參數,args是一個對象。在函數中可以直接訪問對象的屬性。這種情況適合向函數傳遞大量的可選參數情況。

function Person(options){//Jquery 的extend方法,用于合并參數this.options=$.extend(true, {"name":"zhang"},options);console.log(this.options);}var perosn = new Person({"name":"ge","age":18,"sex":"man"});

  上面的代碼定義了Person函數,并且為person傳遞了大量的對象。同時在函數內部有默認的對象,用jquery的extend方法進行參數的合并。

一般情況下,訪問對象的屬性通過操作符.來訪問,不如person.name。訪問對象的方法也通過.來調用,比如person.eat()。訪問對象的屬性還有另外一種訪問方式,通過下標的方式訪問,比如person["age"]。

有些對象的屬性包含一些特殊字符,不能通過操作符(.)來訪問,必須通過中括號的方式來訪問,比如“first name”,這個屬性有空格,必須通過中括號訪問。person["first name"]。

JavaScript中的數組與其他高級語言有很大的區別,數組中存放不同類型的值,可以在數組的第一個位置存放Number,第二個位置存放布爾值。創建數組也有兩種基本的方式,比如 var array = new Array();

如果預先知道數組的長度,可以 var array = new Array(20);也可以向數組中傳遞參數, var array = new Array("red",20,true);當我們只傳遞一個參數時候就比較復雜了,如果傳遞的是數值,則創建該長度的數組,如果傳遞的是字符串,則創建包含這個值的數組。

創建數組的另一種方式是通過字面量的方式創建數組。

var array=[];var array1=["blue",1,true];

訪問數組的方式通過[]下標的方式訪問的,比如 array1[0],輸出第一項的值;rray1[1],輸出第二項的值;array[2]="hehe",修改了第三項的值;array[3]="en",添加新的數組元素。方括號中的索引表示要訪問的值。數組的長度保存在length中。

通過 instanceof,以及isArray可以判斷一個對象是否是數組,比如 array instanceof Array,array.isArray()

var array=["blue","red","yellow"]; console.log(array.toString());//輸出blue,red,yellow console.log(array.join(";"));//輸出blue;red;yellow

toString()方法將數組轉換為String,通過操作符逗號分隔數組元素。同時數組提供了join方法可以指定字符來分隔數組元素。

var array=["blue","red","yellow"]; console.log(array.toString());//輸出blue,red,yellow console.log(array.join(";"));//輸出blue;red;yellow var str = array.toString();// var narray= str.split(",");//["blue","red","yellow"]; console.log(narray[0]);//輸出blue

上述代碼展示split的用法,split可以字符串轉換為數組。通過指定的分隔符,將字符串轉換為數組。

數組提供了一組方法,使數組使用和其他的數據結構一樣。數組可以表現的像棧一樣,可以限制插入和刪除。棧是一種后進先出的數據結構,最新添加的項最早被移除。插入和刪除都發生在棧的頂部。數組提供了push和pop方法。

push方法接收任意數量的參數,將他們逐個添加到數組的末尾,并返回數組的長度。pop方法可以從數組的末尾刪除一項,并返回移除的項

var array=[]; console.log(array.length);//0 array.push("red"); console.log(array.length);//1 array.pop(); console.log(array.length);//0

上面的代碼,定義了一個數組array,并通過push方法添加了一項,數組的長度為1,通過pop方法刪除了一項,數組的長度為0.

隊列的數據結構是先進先出,數組同樣可以表現的像隊列一樣,實現元素的先進先出。隊列在末尾添加元素,在列表的前端移除數據項。push方法可以向數組的末端添加數據元素,shift方法可以移除數組的第一項,并返回,同時數組長度減1.

var array=[]; array.push("red"); array.push("blue"); array.push("green"); array.shift(); console.log(array.toString());//blue,green

上面的代碼定義了一個數組array,并通過push方法添加了三項元素,最好通過shift方法刪除數組的第一項,最后數組只有兩項,toString()方法輸出。

數組的重新排序有兩個方法reverse和sort。reverse就是數組元素反轉,sort方法將數組進行升序排列,首先要將數組的元素調用toString方法,然后再進行排序。

var array=[1,7,5,3,2]; array.reverse(); console.log(array.toString());//2,3,5,7,1 array.sort(); console.log(array.toString());//1,2,3,5,7 var array =[1,3,5,7,9,11]; array.sort(); console.log(array.toString());//輸出1,11,3,5,7,9

?

通過上面的代碼,我們發現sort方法的排序有時候并不是我們想要的結果,所以sort方法提供了傳遞函數作為參數的方法。通過傳遞函數我們能夠實現數值的升序以及降序排列。

function compareMax(v1,v2){if(v1<v2){return -1;}else if(v1>v2){return 1}else{return 0;}}//降序function compareMin(v1,v2){if(v1<v2){return 1;}else if(v1>v2){return -1;}else {return 0;}}var array= [1,3,11,7,2,10];array.sort(compareMax);console.log(array.toString());//1,2,3,7,10,11 array.sort(compareMin);console.log(array.toString());//11,10,7,3,2,1

比較函數接收兩個參數,如果第一個參數應該在第二個參數之前則返回負數,如果第一個參數應該位于第二個參數之后則返回整數,兩個數相等返回0.

//升序排列function compareMax(v1,v2){/*if(v1<v2){return -1;}else if(v1>v2){return 1}else{return 0;}*/return v1-v2;}//降序function compareMin(v1,v2){/* if(v1<v2){return 1;}else if(v1>v2){return -1;}else {return 0;}*/return v2-v1;} View Code

通過上面的兩個函數同樣可以實現升級和降序排列。

?JavaScript的數組還包含許多其他常用的方法。concat方法基于當前的數組,形成一個新的數組,并不改變原數組的值。concat的參數可以一個或者多個數組,可以不是數組。如果不是數組,則在原數組的末尾添加一個新的元素,形成新的數組。如果是數組,則會將數組的每一項添加到新的數組中,形成新的數組。

var array=["1",2]; var array1=array.concat(["3",4]); console.log(array.toString());//輸出1,2 console.log(array1.toString());//輸出1,2,3,4

上面的代碼可以看出通過concat生成了新的數組,原數組的值并沒有發生改變。

slice方法能夠基于當前數組的一項或者多項創建一個新的數組,不會改變原始數組。slice方法有一個或者兩個參數,表示數組下標的起始和結束的位置,不包括結束位置。如果只有一個參數,則從開始位置一直到數組結束。

var array=["blue","red","green","black","white"]; var array1=array.slice(1,3); var array2=array.slice(1); console.log(array1.toString());//red,green console.log(array2.toString());//red,green,black,white

如果slice參數有負數,則用數組長度加上該負數,如array.slice(-2,-1),則array.slice(3,4)相當。如果起始位置大于結束位置,則返回空數組。

splice方法可以向數組的中部插入元素,splice可以實現數組的插入、刪除和替換。刪除需要指定兩個參數,要刪除第一項的位置,要刪除的項數。如splice(1,3),從數組第二項開始,刪除三個數組元素。splice插入方法至少傳遞三個參數,第一要插入元素的位置,第二個要刪除的項數(0),第三個參數要插入的元素,如果要插入多項,可以有第四個參數。。。。

splice的替換方法也至少需要三個參數,第一個參數元素要刪除的位置,第二個參數刪除的項數,第三個參數插入的元素。

var array=["red","green","blue","white","black"]; var array1=array.splice(1,1);//array被刪除一項["red","blue","white","black"] var array2=array.splice(1,0,"green");//["red","green","blue","white","black"] var arrays=array.splice(1,1,"yellow");//["red","yellow","blue","white","black"]

上面的代碼講述了splice方法的刪除、插入、替換方法的使用。

數組的indexOf方法可以查找某個元素在數組的位置,如果數組中部存在該元素,則返回-1.

var array=["red","green","blue","white","black"]; console.log(array.indexOf("green"));//1 console.log(array.indexOf("orange"));//-1

JavaScript為數組提供了5個遍歷的方法,分別是every、fillter、forEach、map和some方法。every方法對數組的每一項運行給定的函數,如果該數組的每一項對函數都返回true,則返回true。

some方法與every方法類似,但是some方法只要有一項滿足函數,就返回true。

var array=[1,2,3,4,5];var result=array.every(function(value,index,array){return value>2;});console.log(result);//false,因為1<2var result1=array.some(function(value,index,array){return value>2;});console.log(result1);//true

filter函數利用指定的函數確定是否在返回的數組中包含一項,并形成新的數組。

var array=[1,2,3,4,5]; var array1=array.filter(function(value,index,array){ return value>2; }); console.log(array1.toString());//3,4,5

上面的代碼對array進行了filter過濾,返回所有大于2的項,形成新的數組。

map方法也返回一個新的數組,但是這個新的數組的每一項都是對原來的每一項元素執行了指定的函數。

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

上面的代碼對array進行了map方法,返回了新的數組,在原來的數組每一項乘2.

forEach方法,對數組的每一項執行傳入的函數。沒有返回值,與for循環類似。

var array=[1,2,3,4,5]; array.forEach(function(value,index,array){ console.log(value); });

?可以自己上述5個重寫。因為有的瀏覽器不支持上述5個方法

Array.prototype.every=function(func){var result=false;for(var i=0,len=this.length;i<len;i++){result=func(this[i],i,this);if(result==false){return false;}}return true;}Array.prototype.some=function(func){var result=false;for(var i=0,len=this.length;i<len;i++){result=func(this[i],i,this);if(result==true){return true;}}return false;}Array.prototype.filter=function(func){var result=[];for(var i=0,len=this.length;i<len;i++){var flag=func(this[i],i,this);if(flag){result.push(this[i]);}}return result;}Array.prototype.map=function(func){var result=[];for(var i=0,len=this.length;i<len;i++){var flag=func(this[i],i,this);result.push(flag);}return result;}Array.prototype.forEach=function(func){for(var i=0,len=this.length;i<len;i++){func(this[i],i,this);}} View Code

?

轉載于:https://www.cnblogs.com/ggz19/p/8176502.html

總結

以上是生活随笔為你收集整理的JavaScript对象和数组的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天美视频在线观看 | 免费人妻精品一区二区三区 | 成人av一区二区三区 | 四川黄色一级片 | 精品视频免费播放 | 日本一区免费看 | 亚州精品国产精品乱码不99按摩 | 男人的天堂va | 日韩欧美综合久久 | 免费黄色av | 少妇精品高潮欲妇又嫩中文字幕 | 国产美女流白浆 | 亚洲熟妇无码一区二区三区导航 | 五月婷婷丁香久久 | 91在线观看免费高清完整版在线观看 | 国产av天堂无码一区二区三区 | 伊人亚洲精品 | 潘金莲一级淫片aaaaa | 美丽的小蜜桃2:美丽人生 | 欧美精品在线免费观看 | 欧美一区二区三区网站 | 交专区videossex另类 | 国产欧美日韩在线播放 | 福利一区在线 | 久99热| 蜜臀少妇久久久久久久高潮 | 特级黄色录像 | 国产精品免费精品一区 | 国产伦子伦对白视频 | 无码国模国产在线观看 | 潮喷失禁大喷水aⅴ无码 | 国产欧美在线观看 | 国产高清一区在线观看 | 日日射日日干 | 国产99在线播放 | 国产99在线播放 | 日韩中文网 | 久久久国际精品 | 久草视频在线观 | 特黄特色大片免费视频大全 | 日日摸天天爽天天爽视频 | 91精品国产欧美一区二区 | 巨茎人妖videos另类 | 不卡av免费在线观看 | 三级网站视频 | 伊人午夜| 日韩手机在线视频 | 色老头一区| 日韩中文在线视频 | 四虎影城库 | 免费看黄色网 | 性少妇xxxxx| 风韵多水的老熟妇 | 亚洲欧美日韩国产成人精品影院 | 在线播放波多野结衣 | 国产免费a | 欧美交| 人人99| 日韩一本在线 | 欧美 日韩 国产 在线观看 | 三级网站国产 | 初尝情欲h名器av | 91网站在线免费看 | 久久久精品视频在线观看 | 特黄一级片| 国产亚洲精品女人久久久久久 | 午夜视频免费看 | 亚洲精品大片 | 久久久久无码国产精品 | 疯狂做受xxxx高潮人妖 | wwwxxoo| 黄色三级免费网站 | 秋霞av一区二区三区 | 波多野结衣一区二区三区免费视频 | 男人的天堂成人 | 男女做激情爱呻吟口述全过程 | 和黑帮大佬的365 | 2018av在线| 欲涩漫入口免费网站 | 精品视频免费看 | 超碰在线亚洲 | 亚洲av无码乱码在线观看富二代 | 免费看av软件 | 熊猫av| 成人午夜免费观看 | 中文字幕一区二区在线观看 | 久久精品视频免费观看 | 亚洲精品男人的天堂 | 超碰在线公开 | 国产人妻人伦精品1国产盗摄 | 欧美日性视频 | 欧美日韩一区二区三区视频 | 日韩免费毛片 | 男人爆操女人 | 999国内精品永久免费视频 | 日韩精品一区二区三区网站 | 亚洲国产综合久久 | 男ji大巴进入女人视频 | 韩国一区二区视频 |