国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

JS實現手寫 forEach算法示例

瀏覽:131日期:2024-05-11 09:07:49

本文實例講述了JS實現手寫 forEach算法。分享給大家供大家參考,具體如下:

手寫 forEach

forEach()方法對數組的每個元素執行一次提供的函數

arr.forEach(callback(currentValue [, index [, array]])[, thisArg]);

callback

currentValue 數組中正在處理的當前元素。 index 可選 數組中正在處理的當前元素的索引。 array 可選 forEach() 方法正在操作的數組。 thisArg 可選 可選參數。當執行回調函數 callback 時,用作 this 的值。 沒有返回值

如果提供了一個 thisArg 參數給 forEach 函數,則參數將會作為回調函數中的 this 值。否則 this 值為 undefined。回調函數中 this 的綁定是根據函數被調用時通用的 this 綁定規則來決定的。

let arr = [1, 2, 3, 4];arr.forEach((...item) => console.log(item));// [1, 0, Array(4)] 當前值

function Counter() { this.sum = 0; this.count = 0;}// 因為 thisArg 參數(this)傳給了 forEach(),每次調用時,它都被傳給 callback 函數,作為它的 this 值。Counter.prototype.add = function(array) { array.forEach(function(entry) { this.sum += entry; ++this.count; }, this); // ^---- Note};const obj = new Counter();obj.add([2, 5, 9]);obj.count;// 3 === (1 + 1 + 1)obj.sum;// 16 === (2 + 5 + 9) 每個數組都有這個方法 回調參數為:每一項、索引、原數組

Array.prototype.forEach = function(fn, thisArg) { var _this; if (typeof fn !== 'function') { throw '參數必須為函數'; } if (arguments.length > 1) { _this = thisArg; } if (!Array.isArray(arr)) { throw '只能對數組使用forEach方法'; } for (let index = 0; index < arr.length; index++) { fn.call(_this, arr[index], index, arr); }};

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《JavaScript數學運算用法總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript數組操作技巧總結》、《JavaScript排序算法總結》、《JavaScript遍歷算法與技巧總結》、《JavaScript查找算法技巧總結》及《JavaScript錯誤與調試技巧總結》

希望本文所述對大家JavaScript程序設計有所幫助。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 兴义市| 台北县| 沙河市| 温宿县| 金秀| 探索| 仙游县| 安康市| 久治县| 沽源县| 临湘市| 呈贡县| 江安县| 中方县| 邹城市| 行唐县| 奎屯市| 会理县| 桐乡市| 抚宁县| 阳西县| 景德镇市| 姜堰市| 阳江市| 鸡西市| 钟祥市| 铁岭县| 麻城市| 绥化市| 颍上县| 合山市| 衡山县| 壶关县| 乌拉特后旗| 和政县| 奉节县| 九江县| 蒙城县| 湖口县| 红原县| 柏乡县|