摘要:區別遍歷數組常用調用數組的每個元素,并將元素傳遞給回調函數這種循環的問題在于無法中途跳出循環,和命令不能奏效和都返回數組,返回的與原數組長度相同只返回符合條件的結果一個值和返回布爾值遍歷對象所有的可枚舉屬性主要是為了遍歷對象而設計的,不適
forEach,map,filter區別
forEach
遍歷數組常用(調用數組的每個元素,并將元素傳遞給回調函數)
let arr = [1,2,3,4,5]; arr.forEach((i)=>{ console.log(i);//1 2 3 4 5 });
這種循環的問題在于無法中途跳出循環,break和return命令不能奏效.
map和filter都返回數組,map返回的與原數組長度相同
map
let arr = ["a","b","c","d"]; let newArr = arr.map((val,key)=>{ if(val=="c"){ return val;} }); console.log(newArr);//[undefined,undefined,"c",undefined];
filter
let arr = ["a","b","c","d"]; let newArr = arr.filter((val,key)=>{ if(val=="c"){ return val; } }); console.log(newArr);//["c"]
只返回符合條件的結果一個值
every和some返回布爾值
for-in
遍歷對象所有的可枚舉屬性(主要是為了遍歷對象而設計的,不適用于遍歷數組)功能類似于Object.keys().
let obj = { name:"xiaoming", age:15 } for(let item in obj){ console.log(item);//name age }
不可枚舉的對象:如constructor,數組的length
let arr = [10, 20, 30, 40, 50]; for (let item in arr) { console.log(item); // "0" "1" "2" "3" "4" }
數組的鍵名是數字,但是for-in循環是以字符串作為鍵名‘0’、‘1’、‘2’等.
for-of
所有實現了[Symbol.iterator]接口的對象都可以被遍歷。可以使用的范圍包括數組、Set 和 Map 結構、某些類似數組的對象(比如arguments對象、DOM NodeList 對象)、Generator 對象,以及字符串
for..of獲取索引
.entries()返回鍵值對
.keys()返回鍵名
.values()返回鍵值
類似數組的對象:如字符串DOM NodeList 對象、arguments對象等
let str = "hi"; for(let i of str){ console.log(s); }//h i let item = document.querySelectorAll("p"); for(let a of item){ a.classList.add("test"); } (function(){ for(let x of arguments){ console.log(x); } })("a","b"); //"a" //"b"
并非所有類似數組的對象都有iterator接口,使用Array.from()將其轉化為數組
let ar = {length:2,0:"a",1:"b"}; for(let i of ar){ console.log(i);//報錯 } for(let i of Array.from(ar)){ consle.log(i);//"a" "b" }
普通對象不能直接使用for-of會報錯,因為沒有iterator接口,for-in可以直接使用,若非要使用for-of需要使用Object.keys方法將鍵名生成一個數組,然后遍歷這個數組。
for(let key of Object.keys(obj)){ console.log(key+" "+obj[key]); }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/95565.html
摘要:四通過跨域一個頁面嵌入一個外域的頁面雖然兩個窗體之前能獲取彼此的對象,但是卻拿不到上的屬性和方法,例如一個頁面嵌入一個的我是父窗體的方法嵌入的窗體跟的域名不同,很明顯是跨域的,雖然能獲取到對象,但是拿不到頁面的任何方法和屬性。 js跨域是指通過js在不同域之間進行相互通信或者數據傳輸,只要協議,域名,端口號其中有一個不同,就是跨域。下面總結一下我了解到的常用的跨域方法。 一:通過jso...
摘要:中幾種遍歷對象的方法,包括它們在使用場景方面各有不同。主要用于遍歷對象的可枚舉屬性,包括自有屬性繼承自原型的屬性輸出如下返回一個數組,元素均為對象自有的可枚舉屬性輸出如下用于返回對象的自有屬性,包括可枚舉和不可枚舉的輸出如下 js中幾種遍歷對象的方法,包括for in、Object.keys、Object.getOwnProperty,它們在使用場景方面各有不同。 for in 主要用...
摘要:說一說迭代器通過集合對象獲取其對應的對象判斷是否存在下一個元素取出該元素并將迭代器對象指向下一個元素取出元素的方式迭代器。對于使用容器者而言,具體的實現不重要,只要通過容器獲取到該實現的迭代器的對象即可,也就是方法。 前言 歡迎關注微信公眾號:Coder編程獲取最新原創技術文章和相關免費學習資料,隨時隨地學習技術知識!** 本章主要介紹Collection集合相關知識,結合面試中會提到...
摘要:接下來分析幾個常見的實現方式。再哈希法再哈希法,就是出現沖突后采用其他的哈希函數計算,直到不再沖突為止。,其中為不同的哈希函數。 由表及里,循序漸進,請往下看。隨手點贊是對作者最大的鼓勵!^0^。 什么是哈希表 引用:嚴蔚敏 《數據結構(C語言版)》中的內容 showImg(https://segmentfault.com/img/bVZlmE?w=800&h=364); 哈希表就是 ...
摘要:類和的背景顏色都為白色大于號指子代元素子代選擇器類下的類元素的背景顏色為白色空格指后代元素后代選擇器類下的所有類元素的背景顏色為白色與子代選擇器不同,后代選擇器可以包含下的所有元素,包括子孫加號指相鄰元素相鄰選擇器緊接在類下的類元素的 類a和b的背景顏色都為白色 大于號‘ > ’指子代元素(子代選擇器) .a>.b{ background-color:#fff; } 類a下的類...
閱讀 1759·2021-11-25 09:43
閱讀 1953·2019-08-30 13:56
閱讀 1214·2019-08-30 12:58
閱讀 3412·2019-08-29 13:52
閱讀 755·2019-08-26 12:17
閱讀 1452·2019-08-26 11:32
閱讀 934·2019-08-23 13:50
閱讀 1298·2019-08-23 11:53