亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

js對象、Array對象及angularjs的遍歷

2019-11-06 10:05:02
字體:
來源:轉載
供稿:網友

一、javaScript 對象

Javascript 中的所有事物都是對象:字符串、數值、數組、函數… 此外,JavaScript 允許自定義對象。

所有事物都是對象。 JavaScript 提供多個內建對象,比如 String、Date、Array 等等。 對象只是帶有屬性和方法的特殊數據類型。 ● 布爾型可以是一個對象。 ● 數字型可以是一個對象。 ● 字符串也可以是一個對象 ● 日期是一個對象 ● 數學和正則表達式也是對象 ● 數組是一個對象 ● 甚至函數也可以是對象

<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鳥教程(runoob.com)</title></head><body><script>//對象只是一種特殊的數據。對象擁有屬性和方法。person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"} //對象(有鍵值)document.write(person.firstname + " is " + person.age + " years old.");document.write("<br>"); //JavaScript for...in 語句循環遍歷對象的屬性。for(a in person){//a為對象的鍵值,person為對象 document.write(a+"=="+person[a]+" ");//person[a]為對象的屬性}document.write("<br>"); //////////////////////////var message="Hello World!"; var x=message.length;document.write(x);//訪問對象屬性document.write("<br>"); //////////////////////////var message="Hello world!";var y=message.toUpperCase();document.write(y);//訪問對象方法document.write("<br>"); /////////////////////////var myCars=["Saab","Volvo","BMW"]; //數組(有下標)for(b in myCars){//b為數組下標 document.write(b+"=="+myCars[b]+" ");//myCars[b]:數組元素}</script></body></html>

結果:

結果:John is 50 years old.firstname==John lastname==Doe age==50 eyecolor==blue 12HELLO WORLD!0==Saab 1==Volvo 2==BMW

二、angularjs的遍歷:

angular有自己的生命周期。循環給一個 angular監聽的變量復值時。最好還是用angular自帶的循環方法:“angular.foreach”

1.針對對象循環(key,value)

var values = {name: 'misko', gender: 'male'};var log = [];angular.forEach(values, function(value, key) { this.push(key + ': ' + value);}, log);expect(log).toEqual(['name: misko', 'gender: male']);

2.針對對象數組:指定開始遍歷

var objs =[{a:1},{a:2}];angular.forEach(objs,function(data,index,array){//data等價于array[index]console.log(data.a+'='+array[index].a);});

參數如下: objs:需要遍歷的集合 data:遍歷時當前的數據 index:遍歷時當前開始索引 array:需要遍歷的集合,每次遍歷時都會把objs原樣的傳一次。

3.針對對象數組:遍歷全部

var objs =[{a:1},{a:2}];angular.forEach(objs, function(data){//data等價于array[index]console.log(data.a);});

4.針對對象數組:遍歷

var list = [ {id: 1, title: "博客園", url: "http://www.cnblogs.com"}, {id: 2, title: "知乎", url: "http://www.zhihu.com"}, {id: 3, title: "code三、區別對象與數組的使用:

例子一:

<!doctype html><html ng-app="a6_3"><head> <title>使用factory方法自定義服務</title> <script src="../Script/angular.min.js" type="text/javascript"></script> <style type="text/
CSS"> body { font-size: 12px; } .show { background-color: #ccc; padding: 8px; width: 260px; margin: 10px 0px; } </style></head><body> <div ng-controller="c6_3"> <div class="show">{{str('我是服務返回的內容')}}</div> <div class="show">{{name(1)}}</div> </div> <script type="text/javascript"> angular.module('a6_3', []) .factory('$outfun', function () { return { str: function (s) { return s; } }; }) .factory('$outarr', function () { return ['張三', '李四', '王二'] }) .controller('c6_3', function ($scope, $outfun, $outarr) { $scope.str = function (n) { return $outfun.str(n);//$outfun為對象,$outfun.str為根據鍵獲取對象的值,n為方法參數 } $scope.name = function (n) { //$outarr為數組,n為下標 } }); </script></body></html>

例子二:

<!doctype html><html ng-app="a6_2"><head> <title>使用$provide自定義服務</title> <script src="../Script/angular.min.js" type="text/javascript"></script> <style type="text/css"> body { font-size: 12px; } .show { background-color: #ccc; padding: 8px; width: 260px; margin: 10px 0px; } </style></head><body><div ng-controller="c6_2"> <div class="show"> 服務返回的值: <span>{{info('name')}}</span> <span>{{info('sex')}}</span> <span>{{info('score')}}</span> </div></div><script type="text/javascript"> angular.module('a6_2', [], function ($provide) {/*內置服務$provide*/ $provide.factory('$output', function () { var stu = { name: '張三', sex: '男', score: '60' }; return stu; }) }) .controller('c6_2', function ($scope, $output) { $scope.info = function (n) { for (_n in $output) { /*JavaScript for...in 語句循環遍歷對象的屬性。*/ if (_n == n) {/*對象的鍵*/ return ($output[_n]); /*通過對象的鍵獲取對象的值*/ } } } });</script></body></html>

四、JavaScript Array 對象

Array 對象Array 對象用于在單個的變量中存儲多個值。創建 Array 對象的語法:new Array();new Array(size);new Array(element0, element1, ..., elementn);Array 對象屬性屬性 描述constructor 返回對創建此對象的數組函數的引用。length 設置或返回數組中元素的數目。prototype 使您有能力向對象添加屬性和方法。 語法: object.prototype.name=valueArray 對象方法方法 描述concat() 連接兩個或更多的數組,并返回結果。join() 把數組的所有元素放入一個字符串。元素通過指定的分隔符進行分隔。pop() 刪除并返回數組的最后一個元素push() 向數組的末尾添加一個或更多元素,并【返回新的長度】。reverse() 顛倒數組中元素的順序。shift() 刪除并返回數組的第一個元素slice() 從某個已有的數組【返回選定的元素】sort() 對數組的元素進行排序splice() 刪除元素,并向數組添加新元素。 arrayObject.splice(index,deleteCount,item1,.....,itemX) 參數 描述 index 必需。整數,規定添加/刪除項目的位置,使用負數可從數組結尾處規定位置。 deleteCount必需。要刪除的項目數量。如果設置為 0,則不會刪除項目。 item1, ..., itemX 可選。向數組刪除的位置 添加的新項目。toSource() 返回該對象的源代碼。toString() 把數組轉換為字符串,并返回結果。toLocaleString() 把數組轉換為本地數組,并返回結果。unshift() 向數組的開頭添加一個或更多元素,并返回新的長度。valueOf() 返回數組對象的原始值

JavaScript中數組slice和splice的對比:

1、slice slice是指定在一個數組中的元素創建一個新的數組,即原數組不會變。 定義和用法 slice() 方法可提取字符串的某個部分,并以新的字符串返回被提取的部分。 語法

stringObject.slice(start,end);//提取包括start不包括end的新的數據,//不改變原有//返回提取的數據

參數 描述 start 要抽取的片斷的起始下標。如果是負數,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最后一個字符,-2 指倒數第二個字符,以此類推。 end 緊接著要抽取的片段的結尾的下標。若未指定此參數,則要提取的子串包括 start 到原字符串結尾的字符串。如果該參數是負數,那么它規定的是從字符串的尾部開始算起的位置。

返回值 一個新的字符串。包括字符串 stringObject 從 start 開始(包括 start)到 end 結束(不包括 end)為止的所有字符。

說明 String 對象的方法 slice()、substring() 和 substr() (不建議使用)都可返回字符串的指定部分。slice() 比 substring() 要靈活一些,因為它允許使用負數作為參數。slice() 與 substr() 有所不同,因為它用兩個字符的位置來指定子串,而 substr() 則用字符位置和長度來指定子串。 還要注意的是,String.slice() 與 Array.slice() 相似。

數組的 slice (ECMAScript 5.1 標準 15.4.4.10 節)非常類似于字符串的 slice。根據規范,slice 需要兩個參數,起點和終點。它會返回一個包含了從起點開始,到終點之前之間所有元素的新數組。(包含起點,不包含終點)

'abc'.slice(1,2) // "b" //截取[14, 3, 77].slice(1, 2) // [3]var x = [14, 3, 77];var y = x.slice(1, 2);console.log(x); // [14, 3, 77] //不改變原有console.log(y); // [3] //返回截取的數據//如果不傳入參數二end,那么將從參數一的索引位置開始截取,//一直到數組尾var a=[1,2,3,4,5,6];var b=a.slice(0,3); //[1,2,3]var c=a.slice(3); //[4,5,6]//如果兩個參數中的任何一個是負數,array.length會和它們相加,//試圖讓它們成為非負數,舉例說明://當只傳入一個參數,且是負數時,length會與參數相加,然后再截取var a=[1,2,3,4,5,6];var b=a.slice(-1); //[6]//當只傳入一個參數,是負數時,并且參數的絕對值大于等于數組length時,會截取整個數組var a=[1,2,3,4,5,6];var b=a.slice(-6); //[1,2,3,4,5,6]var c=a.slice(-8); //[1,2,3,4,5,6]//當傳入兩個參數一正一負時,length也會先于負數相加后,再截取var a=[1,2,3,4,5,6];var b=a.slice(2,-3); //[3]//當傳入一個參數,大于等于length時,將返回一個空數組var a=[1,2,3,4,5,6];var b=a.slice(6);  //[]var a="i am a boy";var b=a.slice(0,6); //"i am a"

2、splice 定義和用法 splice() 方法用于插入、刪除或替換數組的元素。 語法

arrayObject.splice(index,howmany,element1,.....,elementX)//從index開始,刪除howmany個元素,插入element1...等元素。//改變原有數據。//返回刪除的數據。

參數 描述 index 必需。規定從何處添加/刪除元素。 該參數是開始插入和(或)刪除的數組元素的下標,必須是數字。 howmany 必需。規定應該刪除多少元素。必須是數字,但可以是 “0”。 如果未規定此參數,則刪除從 index 開始到原數組結尾的所有元素。 element1 可選。規定要添加到數組的新元素。從 index 所指的下標處開始插入。 elementX 可選??上驍到M添加若干元素。 返回值 如果從 arrayObject 中刪除了元素,則返回的是含有被刪除的元素的數組。

說明 splice() 方法可刪除從 index 處開始的零個或多個元素,并且用參數列表中聲明的一個或多個值來替換那些被刪除的元素。

提示和注釋 注釋:請注意,splice() 方法與 slice() 方法的作用是不同的,splice() 方法會直接對數組進行修改。

splice是JS中數組功能最強大的方法,它能夠實現對數組元素的刪除、插入、替換操作,返回值為被操作的值。 splice刪除:color.splice(1,2) (刪除color中的1、2兩項); splice插入:color.splice(1,0,’brown’,’pink’) (在color鍵值為1的元素前插入兩個值); splice替換:color.splice(1,2,’brown’,’pink’) (在color中替換1、2元素); 雖然 splice(15.4.4.12 節)也需要(至少)兩個參數,但它的意義則完全不同。splice 還會改變原數組。

[14, 3, 77].slice(1, 2) //提?。簭膇ndex1開始截取到index2結束,返回截取的數據: [3][14, 3, 77].splice(1, 2) //替換:從index1開始,刪除2個元素、未添加元素,結果返回新數據: [3, 77]var x = [14, 3, 77]var y = x.splice(1, 2)console.log(x) // [14]//改變原有console.log(y) // [3, 77]//返回被刪除var a=['a','b','c'];var b=a.splice(1,1,'e','f'); //a=['a','e','f','c'],//改變原有數據//b=['b']//返回被刪除的數據
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久国产精品久久久| 欧美性受xxxx黑人猛交| 欧美国产乱视频| 国产欧美日韩免费看aⅴ视频| 日韩精品中文字幕久久臀| 日韩高清a**址| 亚洲精品wwwww| 成人免费视频xnxx.com| 亚洲第一色中文字幕| 亚洲最新av网址| 国产综合色香蕉精品| 一区二区欧美在线| 高跟丝袜一区二区三区| 欧美精品www在线观看| 69久久夜色精品国产69乱青草| 日韩视频一区在线| 日韩欧美大尺度| 色综合91久久精品中文字幕| 亚洲欧美日韩天堂一区二区| 欧美精品久久久久久久久久| 亚洲少妇激情视频| 中文字幕久久久| 欧美放荡办公室videos4k| 国产精品视频自在线| 91在线视频九色| 亚洲电影在线看| 日产精品99久久久久久| 欧美日韩国产二区| 欧美中文在线免费| 欧美成人sm免费视频| 久久亚洲国产精品| 亚洲精品日韩在线| 少妇av一区二区三区| 色综合久久中文字幕综合网小说| 日韩成人在线电影网| 久久久国产精品一区| 国产精品久久久久av免费| 亚洲天堂一区二区三区| 国产精品美女av| 亚洲成人激情图| 高清欧美一区二区三区| 亲爱的老师9免费观看全集电视剧| 日韩精品在线播放| 欧美—级a级欧美特级ar全黄| 国产激情久久久| 亚洲国产精品久久久久久| 欧美福利视频网站| 丁香五六月婷婷久久激情| 萌白酱国产一区二区| 国产在线精品自拍| 欧美激情欧美狂野欧美精品| 久久久噜噜噜久久中文字免| 福利精品视频在线| 亚洲精品欧美日韩| 国产xxx69麻豆国语对白| 91伊人影院在线播放| 日韩中文字幕免费视频| 亚洲a一级视频| 国产精品久久久久国产a级| 成人免费观看网址| 欧美电影免费观看网站| 国产91精品网站| 国产91精品最新在线播放| 日韩日本欧美亚洲| 色偷偷噜噜噜亚洲男人的天堂| 日韩中文字幕第一页| 中文字幕在线观看日韩| 中文字幕9999| 91精品国产777在线观看| 国产视频丨精品|在线观看| 国语自产精品视频在线看抢先版图片| 亚洲精品永久免费| 国产精品福利在线观看网址| 久久久久久久影视| 日韩在线观看免费全集电视剧网站| 久久成人国产精品| 欧美日韩美女在线观看| 成人欧美一区二区三区在线| 国产精品v日韩精品| 日韩国产高清视频在线| 国产精品69久久| 91在线视频导航| 久久91超碰青草是什么| 久久精品国产电影| 久久影院资源网| 国产精品视频一区二区三区四| 色与欲影视天天看综合网| 国产精品88a∨| 日韩av色在线| 欧美在线视频一区| 国产综合在线观看视频| 国产精彩精品视频| 国产精品专区第二| 日韩免费在线看| 亚洲精品中文字幕女同| 亚洲成人av在线| 欧美成人精品一区二区三区| xxx欧美精品| 国产精品免费久久久| 永久555www成人免费| 91av在线不卡| 亚洲三级 欧美三级| 精品国内自产拍在线观看| 国产欧美日韩免费| 色系列之999| 欧美日韩综合视频| 亚洲老头老太hd| 欧美做受高潮电影o| 亚洲最大成人免费视频| 国产精品678| 57pao国产成人免费| 伊人久久久久久久久久久| 日本精品久久中文字幕佐佐木| 成人免费高清完整版在线观看| 国产91精品黑色丝袜高跟鞋| 亚洲第一级黄色片| 日日摸夜夜添一区| 亚洲性生活视频在线观看| 日韩美女av在线免费观看| 91av在线精品| 91a在线视频| 自拍偷拍亚洲欧美| 青青草一区二区| 国产97在线亚洲| 日韩精品中文字幕久久臀| 国产午夜精品理论片a级探花| 欧美做爰性生交视频| 亚洲性线免费观看视频成熟| 久久亚洲成人精品| 精品一区二区三区三区| 日韩三级成人av网| 国产主播精品在线| 九色精品免费永久在线| 欧美国产日韩一区| 国产美女91呻吟求| 91精品在线影院| 亚洲白虎美女被爆操| 欧美孕妇孕交黑巨大网站| 8050国产精品久久久久久| 狠狠色狠色综合曰曰| 亚洲黄一区二区| 成人免费网站在线| 欧美亚洲国产日韩2020| 91美女高潮出水| 国产精品视频1区| 国产精品视频白浆免费视频| 亚洲成在人线av| 国产精品精品一区二区三区午夜版| 欧美精品生活片| 久久五月天色综合| 久久激情视频久久| 欧美极品少妇与黑人| 亚洲天堂男人天堂女人天堂| 国产91久久婷婷一区二区| 日韩美女在线观看一区| 久久夜色精品亚洲噜噜国产mv| 亚洲激情视频网站| 亚洲成人精品视频| www.日本久久久久com.| 美女啪啪无遮挡免费久久网站| 日韩av影视在线| 日韩精品免费综合视频在线播放| 国产福利视频一区二区| 91青草视频久久|