Javascript之高級(jí)數(shù)組API的使用實(shí)例
JS中我們可以根據(jù)需求新建新的對(duì)象解決問(wèn)題的同時(shí),也有一些常用的內(nèi)置對(duì)象供我們使用,我們稱之為API,本篇文章只是對(duì)數(shù)組部分進(jìn)行了練習(xí)。
例一:偽數(shù)組,不能修改長(zhǎng)短的數(shù)組(所以沒(méi)辦法清零),可以修改元素,代碼實(shí)現(xiàn)如下:
<script>
fn(1,2);
fn(1,2,3,4,5,6);
fn(1,2,4,5,7,9,4);
function fn(a,b){
arguments[0]=0;
console.log(arguments);
arguments.push(1);
console.log(arguments instanceof Array);
console.log(arguments.length);//實(shí)參個(gè)數(shù)
console.log(fn.length);//形參個(gè)數(shù)
console.log(arguments.callee);//整個(gè)函數(shù),包括注釋
}
</script>
偽數(shù)組打印的是實(shí)參,而普通函數(shù)調(diào)用打印的是形參,并且打印它的函數(shù)類型,我們發(fā)現(xiàn)它的類型顯示并不是數(shù)組。
例二:將一個(gè)字符串?dāng)?shù)組輸出為|分割的形式,比如“劉備|張飛|關(guān)羽”。使用兩種方式實(shí)現(xiàn)
方法一:不利用內(nèi)置對(duì)象,進(jìn)行字符串拼接,由于第一個(gè)元素前沒(méi)有特殊符號(hào),首先將其賦值后,循環(huán)從下一個(gè)元素開(kāi)始遍歷
<script>
var arr=["劉備","張飛","關(guān)羽"];
var str=arr[0];
for(var i=1;i<arr.length;i++){
str+="|"+arr[i];
}
console.log(str);
</script>
方法二:使用內(nèi)置對(duì)象直接改變間隔符號(hào)
<script>
var arr=["劉備","張飛","關(guān)羽"];
var str=arr.join("|");
console.log(str);
</script>
兩種方法進(jìn)行對(duì)比,我們發(fā)現(xiàn)第一種方法使之產(chǎn)生了大量?jī)?nèi)存,導(dǎo)致內(nèi)存浪費(fèi)情況,從此看出對(duì)我們來(lái)說(shuō)內(nèi)置對(duì)象的使用幫我們解決了內(nèi)存浪費(fèi)的缺點(diǎn)。
例三:將一個(gè)字符串?dāng)?shù)組的元素的順序進(jìn)行反轉(zhuǎn)。["a","b","c","d"] ->["d","c","b","a"]。使用兩種種方式實(shí)現(xiàn)。
方法一:之前文章介紹過(guò)的方法
<script>
var str1=["a","b","c","d"];
var str2=[];
for(var i=0;i<str1.length;i++){
str2[str1.length-i-1]=str1[i];
}
console.log(str2);
</script>
方法二:直接使用內(nèi)置對(duì)象reverse()解決
<script> var str1=["a","b","c","d"]; console.log(str1.reverse()); </script>
例四:工資的數(shù)組[1500,1200,2000,2100,1800],把工資超過(guò)2000的刪除
使用內(nèi)置對(duì)象filter()實(shí)現(xiàn)題目需求。
<script>
var arr=[1500,1200,2000,2100,1800];
var arr1=arr.filter(function(element,index,array){
if(element<=2000){
return true;
}
return false;
})
console.log(arr1);
</script>
例五:["c","a","z","a","x","a"]找到數(shù)組中每一個(gè)元素出現(xiàn)的次數(shù)
由于題目給出字符形式,讓我們求出的相應(yīng)字符的個(gè)數(shù)為數(shù)字形式,這讓我們應(yīng)用json更方便問(wèn)題解決,將題目給出的字符作為“鍵”,將次數(shù)作為“鍵值”,來(lái)判斷數(shù)組中的元素,在json中是否存在屬性值,如果存在,在原有基礎(chǔ)上加上1;如果不存在直接賦值為1。
<script>
var arr=["c","a","z","a","x","a"];
var json={};
for(var i=0;i<arr.length;i++){
if(json[arr[i]]!==undefined){
json[arr[i]]+=1;
}else{
json[arr[i]]=1;
}
}
console.log(json);
</script>
例六:編寫一個(gè)方法 去掉一個(gè)數(shù)組的重復(fù)元素
方法一:新建數(shù)組,將原數(shù)組第一個(gè)元素push進(jìn)入新數(shù)組。遍歷原數(shù)組的每一個(gè)元素使之在新數(shù)組每一個(gè)元素中都不存在(嵌套兩層for循環(huán)),就push進(jìn)入原數(shù)組,否則就跳出新數(shù)組循環(huán),進(jìn)入原數(shù)組的下一個(gè)元素循環(huán)。
<script>
var arr=[3,2,4,5,5,3,5,568,4,21,7];
var arr1=fn(arr);
function fn(array){
var arr2=[];
arr2.push(array[0]);
abc:for(var i=0;i<array.length;i++){
for(var j=0;j<arr2.length;j++){
if(arr2[j]==array[i]){
continue abc;
}
}
arr2.push(array[i]);
}
return arr2;
}
console.log(arr1);
</script>
方法二:創(chuàng)建一個(gè)新數(shù)組,循環(huán)遍歷,只要新數(shù)組中有舊數(shù)組的值,就不要在添加。每次都要判斷新數(shù)組中是否有舊數(shù)組的值,保證舊數(shù)組的元素和新數(shù)組中每一個(gè)都不相等,則賦值給新數(shù)組的下一元素的值。
<script>
var arr=[1,2,3,4,5,2,3,4];
console.log(arr);
console.log(fn(arr));
function fn(array){
var newArr=[];
for(var i=0;i<array.length;i++){
var bool=true;
for(var j=0;j<newArr.length;j++){
if(array[i]===newArr[j]){
bool=false;
}
}
if(bool){
newArr[newArr.length]=array[i];
}
}
return newArr;
}
</script>
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- 詳解JS數(shù)組Reduce()方法詳解及高級(jí)技巧
- 深入JavaScript高級(jí)程序設(shè)計(jì)之對(duì)象、數(shù)組(棧方法,隊(duì)列方法,重排序方法,迭代方法)
- JS刪除數(shù)組里的某個(gè)元素方法
- js刪除數(shù)組元素、清空數(shù)組的簡(jiǎn)單方法(必看)
- js數(shù)組循環(huán)遍歷數(shù)組內(nèi)所有元素的方法
- JS array 數(shù)組詳解
- js二維數(shù)組定義和初始化的三種方法總結(jié)
- js數(shù)組去重的常用方法總結(jié)
- JavaScript從數(shù)組中刪除指定值元素的方法
- JS數(shù)組的高級(jí)使用方法示例小結(jié)
相關(guān)文章
微信小程序?qū)崿F(xiàn)購(gòu)物車頁(yè)面
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)購(gòu)物車頁(yè)面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
微信小程序第三方框架對(duì)比 之 wepy / mpvue / taro
這篇文章主要介紹了小程序第三方框架對(duì)比 ( wepy / mpvue / taro ) 分析,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-04-04
javascript函數(shù)中參數(shù)傳遞問(wèn)題示例探討
本節(jié)主要與大家探討下javascript函數(shù)中參數(shù)傳遞問(wèn)題,有不明白的朋友可以參考下2014-07-07
javascript 動(dòng)態(tài)修改樣式和層疊樣式表代碼
javascript 動(dòng)態(tài)修改樣式和層疊樣式表代碼,需要的朋友可以參考下。2010-04-04
es6中使用map簡(jiǎn)化復(fù)雜條件判斷操作實(shí)例詳解
這篇文章主要介紹了es6中使用map簡(jiǎn)化復(fù)雜條件判斷操作,結(jié)合實(shí)例形式詳細(xì)分析了傳統(tǒng)方法與map簡(jiǎn)化復(fù)雜條件判斷的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02

