JS 中forEach,for in、for of用法實例總結(jié)
更新時間:2023年05月24日 09:11:03 作者:書香水墨
這篇文章主要介紹了JS 中forEach,for in、for of用法,結(jié)合實例形式總結(jié)分析了JS 中forEach,for in、for of的基本功能、使用方法與相關注意事項,需要的朋友可以參考下
一、forEach
1.1 遍歷數(shù)組
var array = [1,2,3,4,5,6]; /** * currentValue 當前元素 * index 當前元素的索引值 * arr 當前元素所屬的數(shù)組對象 **/ array.forEach(function(currentValue, index, arr) { ?? ?console.log("index: " + index + "; currentValue: ", currentValue); });
1.2 遍歷對象
var object = {"a":1, "b":2, "c":3}; /** * currentValue 當前元素 * index 當前元素的索引值 * arr 當前元素所屬的數(shù)組對象 **/ Object.keys(object).forEach(function(currentValue, index, arr) { ?? ?console.log("index: " + index + "; currentValue: ", currentValue); });
二、for in
2.1 遍歷數(shù)組
var array = [1,2,3,4,5,6]; for (var index in array) { ?? ?console.log("index: " + index + "; currentValue: ", array[index]); }
2.2 遍歷對象
var object = {"a":1, "b":2, "c":3}; for (var index in object) { ?? ?console.log("index: " + index + "; currentValue: ", object[index]); }
三、for of
3.1 遍歷數(shù)組
var array = [1,2,3,4,5,6]; for (var varlue of array) { ?? ?console.log("currentValue: ", varlue); }
3.2 遍歷對象
for of不能直接遍歷數(shù)組,需要為對象增加 Symbol.iterator 屬性
3.2.1 方法一
var obj = { ? ? a:1, ? ? b:2, ? ? c:3 }; obj[Symbol.iterator] = function(){ ? ? var keys = Object.keys(this); ? ? var count = 0; ? ? return { ? ? ? ? next(){ ? ? ? ? ? ? if(count < keys.length) { ? ? ? ? ? ? ? ? return {value:obj[keys[count++]], done:false}; ? ? ? ? ? ? }else{ ? ? ? ? ? ? ? ? return {value:undefined, done:true}; ? ? ? ? ? ? } ? ? ? ? } ? ? } }; for(var k of obj){ ? ? console.log(k); }
3.2.2 方法二使用ES6 function*()
var obj = { ? ? a:1, ? ? b:2, ? ? c:3 }; obj[Symbol.iterator] = function*(){ ? ? var keys = Object.keys(obj); ? ? for(var k in keys){ ? ? ? ? yield [k, keys[k]] ? ? } }; for(var [k, v] of obj){ ? ? console.log(k, v); }
感興趣的朋友可以使用本站在線工具:http://tools.jb51.net/code/HtmlJsRun 測試上述代碼運行效果!
相關文章
JavaScript中三個等號和兩個等號的區(qū)別(== 和 ===)淺析
javascript中比較運算符'=='與'==='可能大家用的比較多,但是大家對他的區(qū)別不是很清楚,接下來小編給大家介紹下js中三個等號和兩個等號的區(qū)別(== 和 ===),感興趣的朋友可以參考下2016-09-09JavaScript中的apply()方法和call()方法使用介紹
我們發(fā)現(xiàn)apply()和call()的真正用武之地是能夠擴充函數(shù)賴以運行的作用域,如果我們想用傳統(tǒng)的方法實現(xiàn)2012-07-07KnockoutJS 3.X API 第四章之事件event綁定
event綁定即為事件綁定,即當觸發(fā)相關DOM事件的時候回調(diào)函數(shù),這篇文章主要介紹了KnockoutJS 3.X API 第四章之事件event綁定的相關知識,感興趣的朋友一起看看吧2016-10-10動態(tài)調(diào)整textarea中字體的大小代碼
用js批量輸出select事件控制textarea中字體的大小的代碼。2009-12-12JS踩坑實戰(zhàn)之19位數(shù)Number型精度丟失問題詳析
前幾天測試接口功能的時候,發(fā)現(xiàn)了一個奇怪的問題,下面這篇文章主要給大家介紹了關于JS?Number型精度丟失問題的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-10-10微信/支付寶小程序?qū)崿F(xiàn)彈窗動畫縮放到某個位置的示例代碼
本文詳細介紹了如何使用HTML、CSS和JavaScript實現(xiàn)動畫函數(shù),包括參數(shù)設置和動畫過程中的狀態(tài)管理,文章還涉及了如何獲取DOM元素、設置動畫開始和結(jié)束的回調(diào)函數(shù),感興趣的朋友跟隨小編一起看看吧2024-10-10