JS中我們可以根據需求新建新的對象解決問題的同時,也有一些常用的內置對象供我們使用,我們稱之為API,本篇文章只是對數組部分進行了練習。
例一:偽數組,不能修改長短的數組(所以沒辦法清零),可以修改元素,代碼實現如下:
<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);//實參個數 console.log(fn.length);//形參個數 console.log(arguments.callee);//整個函數,包括注釋 }</script>偽數組打印的是實參,而普通函數調用打印的是形參,并且打印它的函數類型,我們發現它的類型顯示并不是數組。
例二:將一個字符串數組輸出為|分割的形式,比如“劉備|張飛|關羽”。使用兩種方式實現
方法一:不利用內置對象,進行字符串拼接,由于第一個元素前沒有特殊符號,首先將其賦值后,循環從下一個元素開始遍歷
<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>兩種方法進行對比,我們發現第一種方法使之產生了大量內存,導致內存浪費情況,從此看出對我們來說內置對象的使用幫我們解決了內存浪費的缺點。
例三:將一個字符串數組的元素的順序進行反轉。["a","b","c","d"] ->["d","c","b","a"]。使用兩種種方式實現。
方法一:之前文章介紹過的方法
<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>
例四:工資的數組[1500,1200,2000,2100,1800],把工資超過2000的刪除
使用內置對象filter()實現題目需求。
<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"]找到數組中每一個元素出現的次數
由于題目給出字符形式,讓我們求出的相應字符的個數為數字形式,這讓我們應用json更方便問題解決,將題目給出的字符作為“鍵”,將次數作為“鍵值”,來判斷數組中的元素,在json中是否存在屬性值,如果存在,在原有基礎上加上1;如果不存在直接賦值為1。
新聞熱點
疑難解答
圖片精選