国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > JS > 正文

Javascript之高級數(shù)組API的使用實例

2024-05-06 16:48:51
字體:
來源:轉載
供稿:網(wǎng)友

JS中我們可以根據(jù)需求新建新的對象解決問題的同時,也有一些常用的內置對象供我們使用,我們稱之為API,本篇文章只是對數(shù)組部分進行了練習。

例一:偽數(shù)組,不能修改長短的數(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ù)  console.log(fn.length);//形參個數(shù)  console.log(arguments.callee);//整個函數(shù),包括注釋  }</script>

偽數(shù)組打印的是實參,而普通函數(shù)調用打印的是形參,并且打印它的函數(shù)類型,我們發(fā)現(xiàn)它的類型顯示并不是數(shù)組。

例二:將一個字符串數(shù)組輸出為|分割的形式,比如“劉備|張飛|關羽”。使用兩種方式實現(xiàn)

方法一:不利用內置對象,進行字符串拼接,由于第一個元素前沒有特殊符號,首先將其賦值后,循環(huán)從下一個元素開始遍歷

<script>var arr=["劉備","張飛","關羽"];var str=arr[0];for(var i=1;i<arr.length;i++){  str+="|"+arr[i];}console.log(str);</script>

方法二:使用內置對象直接改變間隔符號

<script>var arr=["劉備","張飛","關羽"];var str=arr.join("|");console.log(str);</script>

兩種方法進行對比,我們發(fā)現(xiàn)第一種方法使之產(chǎn)生了大量內存,導致內存浪費情況,從此看出對我們來說內置對象的使用幫我們解決了內存浪費的缺點。

例三:將一個字符串數(shù)組的元素的順序進行反轉。["a","b","c","d"] ->["d","c","b","a"]。使用兩種種方式實現(xiàn)。

方法一:之前文章介紹過的方法

<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>

方法二:直接使用內置對象reverse()解決

<script>var str1=["a","b","c","d"];console.log(str1.reverse());</script>

例四:工資的數(shù)組[1500,1200,2000,2100,1800],把工資超過2000的刪除

使用內置對象filter()實現(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ù)組中每一個元素出現(xiàn)的次數(shù)

由于題目給出字符形式,讓我們求出的相應字符的個數(shù)為數(shù)字形式,這讓我們應用json更方便問題解決,將題目給出的字符作為“鍵”,將次數(shù)作為“鍵值”,來判斷數(shù)組中的元素,在json中是否存在屬性值,如果存在,在原有基礎上加上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>

例六:編寫一個方法 去掉一個數(shù)組的重復元素

方法一:新建數(shù)組,將原數(shù)組第一個元素push進入新數(shù)組。遍歷原數(shù)組的每一個元素使之在新數(shù)組每一個元素中都不存在(嵌套兩層for循環(huán)),就push進入原數(shù)組,否則就跳出新數(shù)組循環(huán),進入原數(shù)組的下一個元素循環(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)建一個新數(shù)組,循環(huán)遍歷,只要新數(shù)組中有舊數(shù)組的值,就不要在添加。每次都要判斷新數(shù)組中是否有舊數(shù)組的值,保證舊數(shù)組的元素和新數(shù)組中每一個都不相等,則賦值給新數(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>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網(wǎng)的支持。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿瓦提县| 乌拉特前旗| 玛沁县| 崇礼县| 深水埗区| 武功县| 太保市| 蓬安县| 静安区| 当涂县| 阳江市| 灵宝市| 洪雅县| 汶上县| 界首市| 江安县| 综艺| 博爱县| 六枝特区| 芦溪县| 蛟河市| 普格县| 咸宁市| 万盛区| 成都市| 隆回县| 涞水县| 阿合奇县| 新津县| 庆安县| 育儿| 温州市| 前郭尔| 五指山市| 肇东市| 澄江县| 邻水| 鹤山市| 阳新县| 东港市| 公主岭市|