JavaScript數組實戰小練習

來源:互聯網
上載者:User

標籤:span   array   target   上進   tail   duplicate   obj   方法   tin   

1.找出元素在數組中的位置。

1 function indexOf(arr, item) {2     return arr.indexOf(item);3 }4 console.log("3在數組[1,2,3,4]中的位置:"+ indexOf([1,2,3,4],3));

2.計算數組中元素的和。

 1 function sum(arr) { 2     var all = 0; 3     for(var i = 0; i < arr.length; i++){ 4         if(typeof arr[i] == "number"){ 5             all += arr[i]; 6         } 7     } 8     return all; 9 }10 console.log("數組元素求和:"+ sum([1,2,3]));

3.移除數組 arr 中的所有值與 item 相等的元素。不要直接修改數組 arr,結果返回新的數組。

 1 function remove(arr,item){ 2     var a = []; 3     for(var i=0; i<arr.length; i++){ 4         if(arr[i] != item){ 5             a.push(arr[i]); 6         } 7     } 8     return a; 9 }10 console.log(remove([1,2,2,3,4,2,4,3,3,3,2],2));

4.移除數組 arr 中的所有值與 item 相等的元素,直接在給定的 arr 數組上進行操作,並將結果返回。

 1 function removeWithoutCopy(arr,item){ 2      for(var i=0; i<arr.length; i++){ 3              if(arr[i] == item){ 4                  arr.splice(i,1); //這裡的1可以理解為每遇到item就刪除數組中的1個元素 5                  i--; 6              } 7          } 8      return arr; 9  }10 console.log(removeWithoutCopy([7,2,5,4,3,2,4,2,5,2],2));

5.在數組 arr 末尾添加元素 item。不要直接修改數組 arr,結果返回新的數組。

 1 /*function append(arr,item){ 2     var a = []; 3     for(var i=0; i<arr.length; i++){ 4         a.push(arr[i]); 5     } 6     a.push(item); 7     return a; 8 }*/ 9 function append(arr,item){10     var a = arr.slice(0); //splice()可從已有的數組中返回選定的元素:arrayObj.slice(start,end);11     a.push(item);12     return a;13 }14 console.log(append([1,2,3,4],10));

6.刪除數組 arr 最後一個元素。不要直接修改數組 arr,結果返回新的數組。

1 function truncate(arr){2     return arr.slice(0,arr.length-1);3 }4 console.log(truncate([1,2,3,4]));

7.在數組 arr 開頭添加元素 item。不要直接修改數組 arr,結果返回新的數組。

1 function prepend(arr,item){2     var a = arr.slice(0); //unshift() 方法可向數組的開頭添加一個或更多元素,並返回新的長度。arrayObject.unshift(newelement1,newelement2,....,newelementX)3     a.unshift(item);4     return a ;5 }6 console.log(prepend([1,2,3,4],10));

8.刪除數組 arr 第一個元素。不要直接修改數組 arr,結果返回新的數組。

1 /*function curtail(arr){2     var a = arr.slice(0);3     a.shift();4     return a;5 }*/6 function curtail(arr){7     return arr.slice(1);8 }9 console.log(curtail([1,2,3,4]));

9.合并數組 arr1 和數組 arr2。不要直接修改數組 arr,結果返回新的數組。

 1 /*function concat(arr1,arr2){ 2     var a = arr1.slice(0); 3     for(var i=0; i<arr2.length; i++){ 4         a.push(arr2[i]); 5     } 6     return a; 7 }*/ 8 function concat(arr1,arr2){ 9     return arr1.concat(arr2);10 }11 console.log(concat([1,2,3],[‘a‘,‘b‘,‘c‘]));

10.在數組 arr 的 index 處添加元素 item。不要直接修改數組 arr,結果返回新的數組。

1 function insert(arr,item,index){2     return arr.slice(0,index).concat(item,arr.slice(index));3 }4 console.log(insert([1, 2, 3, 4], ‘z‘, 2));

11.統計數組 arr 中值等於 item 的元素出現的次數。

 1 /*function count(arr,item){ 2     var cnt=0; 3     for(var i=0; i<arr.length; i++){ 4         if(arr[i] == item){ 5             cnt++; 6         } 7     } 8     return cnt; 9 }*/10 function count(arr,item){11     var cnt = 0;12     arr.forEach(function(e){13         e==item?cnt++:0;14     });15     return cnt;16 }17 console.log(count([1, 2, 4, 4, 3, 4, 3], 4));

12.找出數組 arr 中重複出現過的元素************************************************

 1 function duplicates(arr) { 2     //聲明兩個數組,a數組用來存放結果,b數組用來存放arr中每個元素的個數 3     var a = [],b = []; 4     //遍曆arr,如果以arr中元素為下標的b元素已存在,則該b元素加1,否則設定為1 5     for(var i = 0; i < arr.length; i++){ 6         if(!b[arr[i]]){ 7             b[arr[i]] = 1; 8             continue; 9         }10         b[arr[i]]++;11     }12     //遍曆b數組,將其中元素值大於1的元素下標存入a數組中13     for(var i = 0; i < b.length; i++){14         if(b[i] > 1){15             a.push(i);16         }17     }18     return a;19 }20 console.log(duplicates([1, 2, 4, 4, 3, 3, 1, 5, 3]));

13.為數組 arr 中的每個元素求二次方。不要直接修改數組 arr,結果返回新的數組。

 1 /*function square(arr){ 2     var a = arr.slice(0), 3         b = []; 4     for(var i=0; i<arr.length; i++){ 5         b.push(a[i]*a[i]); 6     } 7     return b; 8 }*/ 9 /*// 使用map10 function square(arr) {11     return arr.map(function(e) {12         return e * e;13     })14 }*/15 const square = arr => arr.map(e => e* e);16 console.log(square([1,2,3,4]));

14.在數組 arr 中,尋找值與 item 相等的元素出現的所有位置********************************

1 function findAllOccurrences(arr,target){2     var a=[];3     arr.forEach(function(val,index){4         val !== target || a.push(index);5     });6 7     return a;8 }9 //console.log(findAllOccurrences(‘abcdefabc‘,target)); //為什麼加上這句就錯了呢?

 __proto__:Array[0]

JavaScript數組實戰小練習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.