偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

JQuery- 遍歷不同類型的集合數(shù)據(jù)

開(kāi)發(fā) 前端
數(shù)組類型的數(shù)據(jù)使用for或者JQ的map()方法;集合類型的數(shù)據(jù)使用forin或者JQ的each()方法;所以不論集合類型與數(shù)組類型的數(shù)據(jù)如何相互嵌套,遍歷使用時(shí)只看當(dāng)前遍歷的是其中哪個(gè)類型的。

集合數(shù)據(jù)有簡(jiǎn)單是鍵值對(duì)集合,比較復(fù)雜的數(shù)組套集合或集合套集合,更復(fù)雜的集合數(shù)組相互嵌套的集合。

根據(jù)不同類型集合數(shù)據(jù)的特點(diǎn)使用對(duì)應(yīng)的循環(huán)遍歷方法以獲取和應(yīng)用集合數(shù)據(jù)。

1、循環(huán)簡(jiǎn)單集合

簡(jiǎn)單的集合數(shù)據(jù)一般使用forin或者jQuery的each()方法,通過(guò)數(shù)組數(shù)據(jù)作對(duì)比。

//數(shù)組
var arr = ["河南", "河北", "山東"];
for (var i = 0; i < arr.length; i++) {
console.log('索引(下標(biāo)): ' + i + ' 值: ' + arr[i]);
}
//集合
var datas = { "hn": "河南", "hn": "河南", "hb": "河北", "sd": "山東" };
console.log('=======forin循環(huán)========');
for (var key in datas) {
//鍵:相當(dāng)于數(shù)組的索引(下標(biāo)) 值:下標(biāo)對(duì)應(yīng)的數(shù)據(jù)
console.log('鍵: ' + key + ' 值: ' + datas[key]);
}
//===============================================
console.log('=======JQ的 each()方法 ========');
$.each(datas, function (k, v) {
//k:對(duì)應(yīng)集合的key v:對(duì)應(yīng)集合的datas[key])
console.log('鍵: ' + k + ' 值: ' + v);
});

JQ的each()方法比f(wàn)orin循環(huán)優(yōu)化了對(duì)集合值的處理。

循環(huán)簡(jiǎn)單集合數(shù)據(jù)

2、循環(huán)數(shù)組集合

(1)使用for或者JQ的map()方法循環(huán)數(shù)組集合數(shù)據(jù)

var ps = [{ 'name': '張三', 'age': 18 }, { 'name': '李四', 'age': '20' }];
console.log('==========for循環(huán)============');
console.log('');
for (var i = 0; i < ps.length; i++) {
//p為當(dāng)前索引下的一個(gè)集合
var p = ps[i];
console.log(p);
//通過(guò)集合p點(diǎn)屬性名(或者中括號(hào)方式) 得到 集合對(duì)應(yīng)的值
console.log('p.name: ' + p.name + ' p.age: ' + p.age);
console.log('p["name"]: ' + p["name"] + ' p["age"]: ' + p["age"]);
console.log('');
}
//=======JQ的map()方法================
$.map(ps, function (item, index) {
console.log('第'+index+'個(gè)集合,兩個(gè)屬性值為: '+item.name+' '+item.age);
});
A方式:   var p = ps[i];   console.log('p.name: ' + p.name + '  p.age: ' + p.age);
B方式: console.log('ps[i].name: ' + ps[i].name + ' ps[i].age: ' + ps[i].age);
//B方式比A方式少了一個(gè)變量
map()方法: console.log('第'+index+'個(gè)集合,兩個(gè)屬性值為: '+item.name+' '+item.age);
//map()方法的item等價(jià)于B方式的ps[i]

對(duì)比后發(fā)現(xiàn)JQ的map()方法比f(wàn)or循環(huán)優(yōu)化了循環(huán)時(shí)下標(biāo)對(duì)應(yīng)集合名稱的處理

數(shù)組集合中,每個(gè)索引對(duì)應(yīng)的是一個(gè)對(duì)象集合,要得到對(duì)象中的值通過(guò)對(duì)象點(diǎn)屬性名或者中括號(hào)屬性名。

for與forin嵌套循環(huán)數(shù)組集合數(shù)據(jù),輸出結(jié)果類似不再截圖。

for (var i = 0; i < ps.length; i++) {
for (var item in ps[i]) {
var p = ps[i];
console.log('鍵: ' + item + ' 值: ' + p[item]);
//等價(jià)于下面的寫(xiě)法
console.log('鍵: ' +item+' 值: '+ ps[i][item]);
}
}

3、循環(huán)集合套集合

使用forin或者jQuery的map()或each()方法循環(huán)集合套集合數(shù)據(jù)

var ps = { "p1": { 'name': '張三', 'age': 18 }, "p2": { 'name': '李四', 'age': '20' } };
console.log('==========forin循環(huán)============');
for (var key in ps) {
var psi = ps[key];
console.log('鍵: ' + key + ' 得到集合: ' + psi);
//psi.name<===>ps[key].name或者 ps[key]["name"]
console.log('值: ' + psi.name + ' 值: ' + psi.age);
}
console.log('==========map()方法============');
$.map(ps, function (item, index) {
console.log('鍵: ' + index + ' 得到集合: ' + ps[index]);
console.log('值: ' + item.name + ' 值: ' + item.age);
});
console.log('==========each()方法============');
$.each(ps, function (k, v) {
console.log('鍵: ' + k + ' 得到集合: ' + v);
console.log('值: ' + v.name + ' 值: ' + v.age);
});

使用雙層forin循環(huán),循環(huán)集合套集合數(shù)據(jù)。

var ps = { "p1": { 'name': '張三', 'age': 18 }, "p2": { 'name': '李四', 'age': '20' } };
for (var key in ps) {
console.log('鍵: ' + key + ' 得到集合: ' + ps[key]);
//key為 p1 時(shí) ps[key]對(duì)應(yīng)集合{ 'name': '張三', 'age': 18 }
//key為 p2 時(shí) ps[key]對(duì)應(yīng)集合{ 'name': '李四', 'age': '20' }
//下面的循環(huán)是為 key=p1時(shí)循環(huán)集合{ 'name': '張三', 'age': 18 }的值
for (var key2 in ps[key]) {
//第一次循環(huán)
//key2為 name 時(shí) 值為 張三
//key2為 age 時(shí) 值為 18
//第二次循環(huán)
//key2為 name 時(shí) 值為 李四
//key2為 age 時(shí) 值為 20
var pk=ps[key];
//ps[key][key2]
console.log('鍵: ' + key2 + ' 值: ' + pk[key2]);
}
}

雙層forin循環(huán)

小結(jié)

數(shù)組類型的數(shù)據(jù)使用for或者JQ的map()方法。

集合類型的數(shù)據(jù)使用forin或者JQ的each()方法。

所以不論集合類型與數(shù)組類型的數(shù)據(jù)如何相互嵌套,遍歷使用時(shí)只看當(dāng)前遍歷的是其中哪個(gè)類型的。

責(zé)任編輯:姜華 來(lái)源: 今日頭條
相關(guān)推薦

2022-09-21 09:03:46

機(jī)密計(jì)算數(shù)據(jù)安全

2021-03-02 21:52:48

Hive數(shù)據(jù)類型

2010-12-16 10:54:07

SSL VPNVPN

2011-03-30 08:27:48

C#

2023-07-25 16:04:18

網(wǎng)絡(luò)電纜光纖

2023-03-24 16:21:08

2010-05-10 09:48:46

Oracle優(yōu)化器

2021-01-22 09:13:03

云計(jì)算邊緣計(jì)算機(jī)計(jì)算機(jī)硬件

2011-04-12 11:46:26

Oracle優(yōu)化器

2022-07-07 09:27:26

Syslinux加載程序

2020-02-02 09:19:14

聊天機(jī)器人機(jī)器人智能

2020-08-27 07:00:00

游戲游戲測(cè)試測(cè)試技術(shù)

2023-04-14 14:54:29

2023-11-23 13:39:17

2022-05-09 14:28:31

NFT區(qū)塊鏈代幣

2023-07-19 09:50:25

人工智能算法

2010-07-01 16:12:10

UML組件圖

2010-03-01 17:35:29

WCF協(xié)定

2010-04-26 12:19:28

Oracle 數(shù)據(jù)庫(kù)

2023-04-12 09:55:50

文件開(kāi)源
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)