欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

JavaScript中數(shù)組常見(jiàn)的操作技巧分享

這篇文章主要講解了“JavaScript中數(shù)組常見(jiàn)的操作技巧分享”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“JavaScript中數(shù)組常見(jiàn)的操作技巧分享”吧!

成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),十多年企業(yè)及個(gè)人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都成百上千家客戶提供網(wǎng)頁(yè)設(shè)計(jì)制作,網(wǎng)站開(kāi)發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營(yíng)銷型網(wǎng)站建設(shè),品牌網(wǎng)站制作,同時(shí)也為不同行業(yè)的客戶提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站制作的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選創(chuàng)新互聯(lián)。

效果圖如下所示:

JavaScript中數(shù)組常見(jiàn)的操作技巧分享

Tip: 右鍵在新標(biāo)簽中打開(kāi)查看清晰大圖

下面介紹JavaScript中的數(shù)組對(duì)象遍歷、讀寫(xiě)、排序等操作以及與數(shù)組相關(guān)的字符串處理操作

創(chuàng)建數(shù)組

一般使用數(shù)組字面量[]創(chuàng)建新數(shù)組,除非想要?jiǎng)?chuàng)建指定長(zhǎng)度的數(shù)組

// good
var arr = [];
var arr = ['red', 'green', 'blue'];
var arr = [
 ['北京', 90],
 ['上海', 50], 
 ['廣州', 50]
];
// bad 
var arr = new Object();

使用push()動(dòng)態(tài)創(chuàng)建二維數(shù)組實(shí)例<ul id = "source"><li>北京空氣質(zhì)量:<b>90</b></li></ul>

var sourceList = document.querySelector('#source');
// 取得<ul>標(biāo)簽下所有<li>元素
var lis = sourceList.querySelectorAll('li');
// 取得<ul>標(biāo)簽下所有<b>元素
var bs = sourceList.querySelectorAll('li b');
var data = [];
for (var i = 0, len = lis.length; i < len; i++) {
 // 法一:先對(duì)data添加一維空數(shù)組,使其成為二維數(shù)組后繼續(xù)賦值
 data.push([]);
 // 分割文本節(jié)點(diǎn),提取城市名字
 var newNod = lis[i].firstChild.splitText(2);
 data[i][0] = lis[i].firstChild.nodeValue;
 // 使用+轉(zhuǎn)換數(shù)字
 data[i][1] = +bs[i].innerHTML;
 // 法二:先對(duì)一維數(shù)組賦值,再添加到data數(shù)組中,使其成為二維數(shù)組
 var li = lis[i];
 var city = li.innerHTML.split("空氣質(zhì)量:")[0];
 var num = +li.innerText.split("空氣質(zhì)量:")[1];
 data.push([city,num]);
}

String.prototype.split() 方法用于把一個(gè)字符串分割成字符串?dāng)?shù)組。 split() 方法不改變?cè)甲址?/p>

li.innerHTML.split("空氣質(zhì)量:")-----這個(gè)拆成的數(shù)組為["北京","90"]的數(shù)組,再取數(shù)組

的第一項(xiàng),即城市值。

Text.splitText()方法會(huì)將一個(gè)文本節(jié)點(diǎn)分成兩個(gè)文本節(jié)點(diǎn),原來(lái)的文本節(jié)點(diǎn)將包含從開(kāi)始到指定位置之前的內(nèi)容,新文本節(jié)點(diǎn)將包含剩下的文本。這個(gè)方法會(huì)返回一個(gè)新文本節(jié)點(diǎn)

querySelector()方法接收一個(gè)CSS選擇符,返回與改模式匹配的第一個(gè)元素,如果沒(méi)有找到,則返回null

querySelectorAll()方法接受一個(gè)CSS選擇符,返回一個(gè)NodeList對(duì)象,如果沒(méi)有找到,則為空

讀取和設(shè)置

存取數(shù)組元素

一維數(shù)組

arr[下標(biāo)索引]

多維數(shù)組

arr[外層數(shù)組下標(biāo)][內(nèi)層元素下標(biāo)]

length屬性

添加新項(xiàng)

arr[array.length] = []

清空數(shù)組或清除

arr.length = 0 || (少于項(xiàng)數(shù)的數(shù)值)

判斷數(shù)組非空

if(arr.length) {}

數(shù)組遍歷

遍歷數(shù)組不使用for in,因?yàn)閿?shù)組對(duì)象可能存在數(shù)字以外的屬性,這種情況下for in不會(huì)得到正確結(jié)果

推薦使用forEach()方法

使用傳統(tǒng)的for循環(huán)

for(var i = 0, len = arr.length; i < len; i++){}
for...in
for (var index in arrayObj){
 var obj = arrayObj[index];
} 
forEach()
arr.forEach(function callback(currentValue, index, array) {
 //your iterator
}[, thisArg]);

應(yīng)用

data.forEach(function (item, index) {
 li = document.createElement('li');
 fragment.appendChild(li);
 li.innerHTML = '第' + digitToZhdigit(index + 1) + '名:' + item[0] + '空氣質(zhì)量:' + '<b>' + item[1] + '</b>';
});
const numbers = [1, 2, 3, 4];
let sum = 0;
numbers.forEach(function(numer) {
 sum += number;
});
console.log(sum);

引申1:在ES6中,可以使用let或const聲明所有局部變量,不使用var關(guān)鍵字。默認(rèn)使用const,除非需要重新分配變量。const用于聲明常量,let是新的聲明變量方式,具有塊級(jí)作用域即由花括號(hào)封閉起來(lái),這樣就不用考慮各種嵌套下變量的訪問(wèn)問(wèn)題了。

var foo = true;
if(foo) {
 let bar = foo*2;
 bar =something(bar);
 console.log(bar);
}
console.log(bar); // RefenceError

詳情見(jiàn)https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20%26%20closures/ch4.md

引申2:可以使用箭頭函數(shù)=>寫(xiě)出更簡(jiǎn)短的函數(shù)

MDN Arrow functions

numbers.forEach(numer => {
});

數(shù)組排序

sort()方法

默認(rèn)情況下通過(guò)調(diào)用數(shù)組項(xiàng)toString()方法轉(zhuǎn)型,然后比較字符串順序(ASCII碼)從小到大排列數(shù)組
為了避免類似數(shù)值字符串比較時(shí),"10"會(huì)排在"5"的前面,sort()接受一個(gè)比較函數(shù)compare()參數(shù),按數(shù)值大小比較

function compare(a, b) {
 if (a < b) {
 return -1;
 } else if (a > b) {
 return 1;
 } else {
 return 0;
 }  
}

該函數(shù)返回值小于0,則 a 排在 b前面;如果返回值大于0,則 b 排在 a 前面;如果返回值等于0,則 a 和 b 的相對(duì)位置不變。最后返回的是升序數(shù)組,我們也可以通過(guò)交換比較函數(shù)返回的值產(chǎn)生降序排序的結(jié)果。
另外如果比較的是數(shù),則可以簡(jiǎn)化compare()函數(shù)如下(其中a-b升序,b-a降序)

function compare(a, b) {
 return a - b;
}

運(yùn)用實(shí)例

可以特定對(duì)像某個(gè)屬性進(jìn)行排序

var objectList = [];
function Persion(name,age){
 this.name=name;
 this.age=age;
}
objectList.push(new Persion('jack',20));
objectList.push(new Persion('tony',25));
objectList.push(new Persion('stone',26));
objectList.push(new Persion('mandy',23));
//按年齡從小到大排序
objectList.sort(function(a,b){
 return a.age-b.age
});

可以對(duì)多維數(shù)組某一列進(jìn)行排序

var aqiData = [
 ["北京", 90],
 ["上海", 50],
 ["福州", 10],
 ["廣州", 50],
 ["成都", 90],
 ["西安", 100]
];
aqiData.sort(function (a, b) {
 return a[1] - b[1];
});
console.table(aqiData); // 以表格輸出到控制臺(tái),用于調(diào)試直觀了然

reverse()方法

返回一個(gè)逆向排序的數(shù)組

var values = [1, 2, 3, 4, 5];
values.reverse();
alert(values); // 5,4,3,2,1

其他數(shù)組操作方法功能分類

數(shù)組元素的添加

arrayObj. push([item1 [item2 [. . . [itemN ]]]]); // 將一個(gè)或多個(gè)新元素添加到數(shù)組結(jié)尾,并返回?cái)?shù)組新長(zhǎng)度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]); // 將一個(gè)或多個(gè)新元素添加到數(shù)組開(kāi)始,數(shù)組中的元素自動(dòng)后移,返回?cái)?shù)組新長(zhǎng)度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]); // 將一個(gè)或多個(gè)新元素插入到數(shù)組的指定位置,插入位置的元素自動(dòng)后移,返回""。第二個(gè)參數(shù)不為0(要?jiǎng)h除的項(xiàng)數(shù))時(shí)則可以實(shí)現(xiàn)替換的效果。
arr[array.length] = [] // 使用length屬性在數(shù)組末尾添加新項(xiàng)

數(shù)組元素的刪除

arrayObj.pop(); // 移除末端一個(gè)元素并返回該元素值
arrayObj.shift(); // 移除前端一個(gè)元素并返回該元素值,數(shù)組中元素自動(dòng)前移
arrayObj.splice(deletePos,deleteCount); // 刪除從指定位置deletePos開(kāi)始的指定數(shù)量deleteCount的元素,返回所移除的元素組成的新數(shù)組

數(shù)組元素的截取和合并

arrayObj.slice(startPos, [endPos]); // 以數(shù)組的形式返回?cái)?shù)組的一部分,注意不包括 endPos 對(duì)應(yīng)的元素,如果省略 endPos 將復(fù)制 startPos 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); // 將多個(gè)數(shù)組(也可以是字符串,或者是數(shù)組和字符串的混合)連接為一個(gè)數(shù)組,返回連接好的新的數(shù)組

數(shù)組的拷貝

arrayObj.slice(0); // 返回?cái)?shù)組的拷貝數(shù)組,注意是一個(gè)新的數(shù)組,不是指向
arrayObj.concat(); // 返回?cái)?shù)組的拷貝數(shù)組,注意是一個(gè)新的數(shù)組,不是指向

數(shù)組指定元素的索引(可以配合splice()使用)

arr.indexOf(searchElement[, fromIndex = 0]) // 返回首個(gè)被找到的元素(使用全等比較符===),在數(shù)組中的索引位置; 若沒(méi)有找到則返回 -1。fromIndex決定開(kāi)始查找的位置,可以省略。
lastIndexOf() // 與indexOf()一樣,只不過(guò)是從末端開(kāi)始尋找

數(shù)組的字符串化

arrayObj.join(separator); //返回字符串,這個(gè)字符串將數(shù)組的每一個(gè)元素值連接在一起,中間用 separator 隔開(kāi)。

可以看做split()的逆向操作

數(shù)組值求和

array.reduce(function(accumulator, currentValue, currentIndex, array), initialValue)// 累加器和數(shù)組中的每個(gè)元素 (從左到右)應(yīng)用一個(gè)函數(shù),將其減少為單個(gè)值,返回函數(shù)累計(jì)處理的結(jié)果
var total = [0, 1, 2, 3].reduce(function(sum, value) {
 return sum + value;
}, 0);
// total is 6

感謝各位的閱讀,以上就是“JavaScript中數(shù)組常見(jiàn)的操作技巧分享”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)JavaScript中數(shù)組常見(jiàn)的操作技巧分享這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站題目:JavaScript中數(shù)組常見(jiàn)的操作技巧分享
當(dāng)前網(wǎng)址:http://aaarwkj.com/article14/ijhpge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、搜索引擎優(yōu)化、外貿(mào)建站App設(shè)計(jì)、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
欧美日本一区二区四区| 国产探花猛操性感美女| 一区二区三区乱码国产在线| 一区不卡在线视频免费国产| 国产口爆一区二区三区| 亚洲av一本岛在线播放| 日韩精品中文字幕有码| 欧美日韩三级国产在线| 久久精品欧美日韩视频| 亚洲激情欧美日韩精品| 国产精品推荐在线观看| 91啪在线观看91色| 97成人在线免费视频| 人妖系列中文字幕欧美系列| 日本东京热免一区二区| 国产精精精精品欧美日韩| 欧美日韩一区二区综合在线视频| 国产午夜在线观看免费视频| 亚洲人成伊人成综合网中文| 日韩欧美亚洲福利在线| 人妻的秘密一区二区三区 | 久久午夜视频在线观看| 日本又色又爽又黄又高潮| 日本亚洲中文字幕无吗| 小仙女精品经典三级永久| 欧美日韩在线一区二区| 香蕉视频在线观看亚洲精品| 亚洲视频一区二区精品| 好狼色欧美激情国产区| 日本最新一区二区三区视频| 日韩精品中文字幕国产精品| 精品午夜人妻一区二区| 国产做a爰片久久91| 91九色国产在线播放| 欧美国产精品久久综合| 国产a天堂一区二区专区| 日韩在线不卡一二三| 少妇人妻精品一区三区二区| 蜜桃av网站在线播放| 亚洲精品女同专区视频| 日韩av大片一区二区三区|