成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS中幾種包含for的遍歷方式

jcc / 412人閱讀

摘要:區(qū)別遍歷數(shù)組常用調(diào)用數(shù)組的每個(gè)元素,并將元素傳遞給回調(diào)函數(shù)這種循環(huán)的問題在于無法中途跳出循環(huán),和命令不能奏效和都返回?cái)?shù)組,返回的與原數(shù)組長度相同只返回符合條件的結(jié)果一個(gè)值和返回布爾值遍歷對象所有的可枚舉屬性主要是為了遍歷對象而設(shè)計(jì)的,不適

forEach,map,filter區(qū)別
forEach

遍歷數(shù)組常用(調(diào)用數(shù)組的每個(gè)元素,并將元素傳遞給回調(diào)函數(shù))

let arr = [1,2,3,4,5];
arr.forEach((i)=>{
    console.log(i);//1 2 3 4 5
});

這種循環(huán)的問題在于無法中途跳出循環(huán),break和return命令不能奏效.
map和filter都返回?cái)?shù)組,map返回的與原數(shù)組長度相同

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"]

只返回符合條件的結(jié)果一個(gè)值
every和some返回布爾值

for-in

遍歷對象所有的可枚舉屬性(主要是為了遍歷對象而設(shè)計(jì)的,不適用于遍歷數(shù)組)功能類似于Object.keys().

let obj = {
    name:"xiaoming",
    age:15
}
for(let item in obj){
    console.log(item);//name age
}

不可枚舉的對象:如constructor,數(shù)組的length

let arr = [10, 20, 30, 40, 50];
 
for (let item in arr) {
    console.log(item); // "0" "1" "2" "3" "4"
}

數(shù)組的鍵名是數(shù)字,但是for-in循環(huán)是以字符串作為鍵名‘0’、‘1’、‘2’等.

for-of

所有實(shí)現(xiàn)了[Symbol.iterator]接口的對象都可以被遍歷??梢允褂玫姆秶〝?shù)組、Set 和 Map 結(jié)構(gòu)、某些類似數(shù)組的對象(比如arguments對象、DOM NodeList 對象)、Generator 對象,以及字符串
for..of獲取索引
.entries()返回鍵值對
.keys()返回鍵名
.values()返回鍵值
類似數(shù)組的對象:如字符串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"

并非所有類似數(shù)組的對象都有iterator接口,使用Array.from()將其轉(zhuǎn)化為數(shù)組

let ar = {length:2,0:"a",1:"b"};
for(let i of ar){
    console.log(i);//報(bào)錯(cuò)
}

for(let i of Array.from(ar)){
    consle.log(i);//"a" "b"
}

普通對象不能直接使用for-of會報(bào)錯(cuò),因?yàn)闆]有iterator接口,for-in可以直接使用,若非要使用for-of需要使用Object.keys方法將鍵名生成一個(gè)數(shù)組,然后遍歷這個(gè)數(shù)組。

for(let key of Object.keys(obj)){
    console.log(key+" "+obj[key]);
}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/95565.html

相關(guān)文章

  • js幾種跨域方法

    摘要:四通過跨域一個(gè)頁面嵌入一個(gè)外域的頁面雖然兩個(gè)窗體之前能獲取彼此的對象,但是卻拿不到上的屬性和方法,例如一個(gè)頁面嵌入一個(gè)的我是父窗體的方法嵌入的窗體跟的域名不同,很明顯是跨域的,雖然能獲取到對象,但是拿不到頁面的任何方法和屬性。 js跨域是指通過js在不同域之間進(jìn)行相互通信或者數(shù)據(jù)傳輸,只要協(xié)議,域名,端口號其中有一個(gè)不同,就是跨域。下面總結(jié)一下我了解到的常用的跨域方法。 一:通過jso...

    XboxYan 評論0 收藏0
  • JS篇-遍歷對象屬性(for in、Object.keys、Object.getOwnPropert

    摘要:中幾種遍歷對象的方法,包括它們在使用場景方面各有不同。主要用于遍歷對象的可枚舉屬性,包括自有屬性繼承自原型的屬性輸出如下返回一個(gè)數(shù)組,元素均為對象自有的可枚舉屬性輸出如下用于返回對象的自有屬性,包括可枚舉和不可枚舉的輸出如下 js中幾種遍歷對象的方法,包括for in、Object.keys、Object.getOwnProperty,它們在使用場景方面各有不同。 for in 主要用...

    sunnyxd 評論0 收藏0
  • 通過面試題,讓我們來了解Collection

    摘要:說一說迭代器通過集合對象獲取其對應(yīng)的對象判斷是否存在下一個(gè)元素取出該元素并將迭代器對象指向下一個(gè)元素取出元素的方式迭代器。對于使用容器者而言,具體的實(shí)現(xiàn)不重要,只要通過容器獲取到該實(shí)現(xiàn)的迭代器的對象即可,也就是方法。 前言 歡迎關(guān)注微信公眾號:Coder編程獲取最新原創(chuàng)技術(shù)文章和相關(guān)免費(fèi)學(xué)習(xí)資料,隨時(shí)隨地學(xué)習(xí)技術(shù)知識!** 本章主要介紹Collection集合相關(guān)知識,結(jié)合面試中會提到...

    HelKyle 評論0 收藏0
  • 談?wù)刯ava幾種常見散列算法及解決哈希碰撞方式

    摘要:接下來分析幾個(gè)常見的實(shí)現(xiàn)方式。再哈希法再哈希法,就是出現(xiàn)沖突后采用其他的哈希函數(shù)計(jì)算,直到不再沖突為止。,其中為不同的哈希函數(shù)。 由表及里,循序漸進(jìn),請往下看。隨手點(diǎn)贊是對作者最大的鼓勵(lì)!^0^。 什么是哈希表 引用:嚴(yán)蔚敏 《數(shù)據(jù)結(jié)構(gòu)(C語言版)》中的內(nèi)容 showImg(https://segmentfault.com/img/bVZlmE?w=800&h=364); 哈希表就是 ...

    沈建明 評論0 收藏0
  • CSS幾種常用選擇器

    摘要:類和的背景顏色都為白色大于號指子代元素子代選擇器類下的類元素的背景顏色為白色空格指后代元素后代選擇器類下的所有類元素的背景顏色為白色與子代選擇器不同,后代選擇器可以包含下的所有元素,包括子孫加號指相鄰元素相鄰選擇器緊接在類下的類元素的 類a和b的背景顏色都為白色 大于號‘ > ’指子代元素(子代選擇器) .a>.b{ background-color:#fff; } 類a下的類...

    趙連江 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<