判斷是否為數(shù)組有兩種方式,instanceof ?和 Array.isArray( 參數(shù) ),兩者判斷方法均為如果是數(shù)組則返回 true,不是數(shù)組則返回 **false,**其中第二個(gè)方法為H5新增加的方法
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供烏達(dá)網(wǎng)站建設(shè)、烏達(dá)做網(wǎng)站、烏達(dá)網(wǎng)站設(shè)計(jì)、烏達(dá)網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、烏達(dá)企業(yè)網(wǎng)站模板建站服務(wù),10余年烏達(dá)做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。var arr=[];
var obj={};
console.log(arr instanceof Array); //true
console.log(obj instanceof Array); //false
console.log(Array.isArray(arr)); //true
console.log(Array.isArray(obj)); //false
三:數(shù)組元素的增加和刪除
數(shù)組元素的增加和刪除分別有兩個(gè)方法,增加有?push(),unshift(),刪除有?pop(),shift(),下面對這四個(gè)方法一一講解
**push( 參數(shù)1,參數(shù)2… ):有參數(shù),**在數(shù)組的最后一個(gè)位置添加,參數(shù)為新添加的元素(可以為多個(gè)元素),如果返回該方法,返回值為新數(shù)組的長度
var arr=[1,2,3,4,5,6];
console.log(arr.push(7,8,9,‘小明’,‘小華’)); //返回值為新數(shù)組的長度
console.log(arr);
**unshift( 參數(shù)1,參數(shù)2…):****有參數(shù),****在數(shù)組最前面的位置添加新元素,**參數(shù)為新添加的元素(可以為多個(gè)元素),如果返回該方法,返回值為新數(shù)組的長度
var arr=[1,2,3,4,5,6];
console.log(arr.unshift(0,‘小明’,‘小華’)); //返回值為新數(shù)組的長度
console.log(arr);
**pop():**無參數(shù),刪除數(shù)組的最后一個(gè)元素,一次只能刪一個(gè)元素,數(shù)組長度減1,如果返回該方法,返回值為被刪掉的元素
var arr=[1,2,3,4,5,6];
console.log(arr.pop()); //返回值為被刪掉的元素
console.log(arr);
**shift():**無參數(shù),刪除數(shù)組的第一個(gè)元素,一次只能刪一個(gè)元素,數(shù)組長度減1,如果返回該方法,返回值為被刪掉的元素
var arr=[1,2,3,4,5,6];
console.log(arr.shift()); //返回被刪掉的元素
console.log(arr);
四:篩選數(shù)組的改進(jìn)
在之前學(xué)習(xí)數(shù)組時(shí),我們經(jīng)常會遇到一些篩選數(shù)組的案例,但是學(xué)習(xí)了上面的四種方法,對于這類問題又可以得到一個(gè)升華。
例如:要求我們篩選出一個(gè)數(shù)組中大于100的數(shù),刪掉小于100的數(shù)
在以前的數(shù)組基礎(chǔ)中,我們可以得到這樣的代碼:
var arr=[102,98,65,152,34,99,187,256,139,74,112,35];
var newarr=[];
for(var i=0;i
if(arr[i]>100){
newarr[newarr.length]=arr[i]; //這是我們常規(guī)的寫法
}
}
console.log(newarr);
但是學(xué)過了 push() 方法,我們就可以利用此方法解決上述問題,更為直觀:
var arr=[102,98,65,152,34,99,187,256,139,74,112,35];
var newarr=[];
for(var i=0;i
if(arr[i]>100){
newarr.push(arr[i]); //改進(jìn)代碼,更為直觀清晰
}
}
console.log(newarr);
五:數(shù)組的翻轉(zhuǎn)與排序
對于數(shù)組的翻轉(zhuǎn)與排序,我們都知道可以通過 for循環(huán),冒泡排序,選擇排序 來實(shí)現(xiàn),但是在Array對象中,給好了方法可以直接使用,分別是反轉(zhuǎn)數(shù)組的方法 reverse() 和排序的方法 sort()
**reverse():**無參數(shù),數(shù)組可直接使用
var arr=[1,2,3,4,5,6,7,8,9];
console.log(arr.reverse()); //結(jié)果為9,8,7,6,5,4,3,2,1
**sort():**這個(gè)的情況略微有些復(fù)雜,如果直接使用的話只能排序數(shù)組內(nèi)10以內(nèi)的數(shù),要想自定義升序排序并且不受數(shù)字大小限制,需要在該方法中寫入一個(gè)函數(shù)作為參數(shù)(*固定使用牢記即可*)
升序的參數(shù):
function(a,b){
return? ?a-b ;}
var arr=[1,23,46,9,68,35,7,11];
arr.sort(function(a,b){
return a-b; //返回a-b為升序
})
console.log(arr);
降序的參數(shù):
function(a,b){
return? ?b-a ;}
var arr=[1,23,46,9,68,35,7,11];
arr.sort(function(a,b){
return b-a; //返回b-a為降序
})
console.log(arr);
此參數(shù)牢記即可
六:數(shù)組的元素索引
數(shù)組的索引有兩種查詢方式,從第一個(gè)開始查詢的 indexOf() 和從最后開始查詢的 lastIndexOf()
indexOf( 參數(shù) ):參數(shù)為要查詢的數(shù)組元素,從第一個(gè)****元素開始查找,并且返回查詢到的第一個(gè)元素,如果存在的話返回該元素出現(xiàn)的第一次的索引位置,如果不存在返回 -1
var arr=[1,2,3,4,5,3,6];
console.log(arr.indexOf(3)); //有此元素 返回其第一個(gè)索引位置
console.log(arr.indexOf(9)); //沒有此元素,返回-1
lastIndexOf( 參數(shù) ):參數(shù)為要查詢的數(shù)組元素,從最后一個(gè)****元素開始查找,并且返回查詢到的第一個(gè)元素,如果存在的話返回該元素出現(xiàn)的第一次的索引位置,如果不存在返回 -1
var arr=[1,2,3,4,5,3,6];
console.log(arr.lastIndexOf(3)); //有此元素 返回從最后一個(gè)元素起第一次查詢到的索引
console.log(arr.indexOf(9)); //無此元素,返回-1
七:數(shù)組去重案例(重點(diǎn))
有這樣一個(gè)案例很重要,在一個(gè)數(shù)組中有很多對相同的數(shù)組元素,我們怎么操作才能使新數(shù)組中的元素沒有重復(fù)的
**大致思路:**遍歷舊的數(shù)組,用舊的數(shù)組去查詢新的數(shù)組,如果有這個(gè)元素就不添加進(jìn)新數(shù)組,沒有的話就添加進(jìn)去。
但是我們怎么測能知道新數(shù)組中有沒有呢,這就用到了剛才提到過的數(shù)組元素的索引如果查詢不到,則返回-1,對此我們只要判斷是不是-1 就可以知道新數(shù)組中有沒有該元素
var arr=[1,1,2,2,3,4,5,5,5,6,4,3,6,7,9,8];
var newarr=[];
for(var i=0;i
if(newarr.indexOf(arr[i])==-1){ //判斷新元素中有沒有該元素
newarr.push(arr[i]);
}
}
newarr.sort(function(a,b){ //升序排序
return a-b;
})
console.log(newarr);
八:數(shù)組轉(zhuǎn)字符串
之前學(xué)過數(shù)字型轉(zhuǎn)換為字符串型,我們用到了 toString() 和 St
ring() ,在數(shù)組轉(zhuǎn)換為字符串時(shí)我們也有兩個(gè)方法,toString() 和 join()
**toString():**無參數(shù)
var arr=[1,2,3,4,5,6];
console.log(arr.toString());
**join( 分隔符 ):**有參數(shù),參數(shù)為自己想要設(shè)置的分隔符
var arr=[1,2,3,4,5,6];
之前學(xué)過數(shù)字型轉(zhuǎn)換為字符串型,我們用到了 toString() 和 St
[外鏈圖片轉(zhuǎn)存中…(img-0PZSHLrm-1670149245363)]
ring() ,在數(shù)組轉(zhuǎn)換為字符串時(shí)我們也有兩個(gè)方法,toString() 和 join()
**toString():**無參數(shù)
var arr=[1,2,3,4,5,6];
console.log(arr.toString());
**join( 分隔符 ):**有參數(shù),參數(shù)為自己想要設(shè)置的分隔符
var arr=[1,2,3,4,5,6];
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
當(dāng)前文章:JavaScript內(nèi)置對象(三)---------Array對象-創(chuàng)新互聯(lián)
本文網(wǎng)址:http://jinyejixie.com/article26/dedojg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、微信公眾號、ChatGPT、虛擬主機(jī)、建站公司、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容