一、join()相關介紹
arr.join(separator ):方法用于把數組中的所有元素放入一個字符串。
元素是通過指定的分隔符進行分隔的。如果省略,則數組元素用逗號分隔。
2.重寫思路使用如下:
(1)可以先判斷數組中是否存在null或者undefined,若存在對其進行相應的處理。
(3)存在參數,說明需要我們使用傳遞過來的參數進行分割,不存在參數默認使用 “,” 將數組中的數據分割開來。
<script> Array.prototype.newJoin = function () { var string = ""; for (var i = 0; i < this.length; i++) { // 判斷數組中是否存在null或者undefined,若存在將其變成空字符 if (this[i] === null || this[i] === undefined) { //將數組中null和undefined元素變成空字符 this[i] = ""; } // 判斷是否傳參過來,arguments對象表示函數參數的屬性,arguments.length求出函數參數的個數,arguments[i]表示某一個參數 if (arguments.length == 1 && arguments[0] != undefined) { string += (i < this.length - 1) ? this[i] + arguments[0] : this[i]; } // else表示不傳參的情況,默認我們的join函數是使用“ , ” else { string += (i < this.length - 1) ? this[i] + "," : this[i]; } } return string; } var arr = [1, 5, 11, 56, 44, 77, 96]; var arr2 = [1,88,46]; var str = arr.newJoin();//1, 5, 11, 56, 44, 77, 96 var str2 = arr2.newJoin("//");//1//88//46 console.log(str); console.log(str2); </script>
二、find()相關介紹
find() 方法返回通過測試(函數內判斷)的數組的第一個元素的值。
find() 方法為數組中的每個元素都調用一次函數執行:
當數組中的元素在測試條件時返回 true 時,find() 返回符合條件的元素,之后的值不會再調用執行函數。
如果沒有符合條件的元素返回 undefined
注意: find() 對于空數組,函數是不會執行的。
注意: find() 并沒有改變數組的原始值。
2.重寫思路如下:
(1)在重寫的find()方法外寫一個方法fnB(),該方法是我們查找的依據
(2)根據fnB()在重寫的find()方法中進行for循環進行判斷是否為想要的結果,如果是則返回該值
3.代碼:
<script> Array.prototype.newFind=function(fun){ //判斷參數是否為函數不是的話拋出錯誤 if(typeof fun!="function"){ throw new TypeError(`${fun}not a function`) } for(let i=0;i<this.length;i++){ // arr.newFind||this指向調用newFind的arr if(fun(this[i])){ return this[i]; } } } var arr=[1,4,15,55,16,33]; const val=arr.newFind(function(value){ return value>55; }) console.log(val);//undefined沒有大于55的元素 </script>