亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

Javascript數(shù)組系列二之迭代方法1

tylin / 716人閱讀

摘要:我們?cè)跀?shù)組系列一之棧與隊(duì)列中介紹了一些數(shù)組的用法。該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí)的值。今天我們就說(shuō)這么多,希望你有所收獲,接下來(lái)還請(qǐng)繼續(xù)關(guān)注,我們繼續(xù)來(lái)說(shuō)數(shù)組的其他一系列的方法。

我們?cè)凇禷vascript數(shù)組系列一之棧與隊(duì)列》中介紹了一些數(shù)組的用法。比如:數(shù)組如何表現(xiàn)的和「?!挂粯?,用什么方法表現(xiàn)的和「隊(duì)列」一樣等等一些方法,因?yàn)?Javascript 中的數(shù)組方法眾多,所以我們沒(méi)有在一篇文章中介紹過(guò)多的東西,接下來(lái)我們就來(lái)了解數(shù)組的其他功能吧

正式開(kāi)始!

數(shù)組的迭代方法

數(shù)組的迭代方法是我們?cè)陂_(kāi)發(fā)項(xiàng)目中使用頻率非常高、非常重要、非常高效,不僅如此這些方法還能使我們的代碼會(huì)非常簡(jiǎn)潔,可以這么說(shuō),如果你在開(kāi)發(fā)中不經(jīng)常使用這些方法的話,簡(jiǎn)直就是太可怕了。

比如我們?nèi)绾闻康奶砑?DOM 節(jié)點(diǎn)

let containerUl = document.getElementById("container");
let li;
let peoples = [{name: "Liu", age: 14}, {name: "Li", age: 13}, {name: "Cao", age: 11}];

//for 循環(huán)
for (let i = 0; i < peoples.length; i++) {
    li = document.createElement("li");
    li.innerHTML = peoples[i].name + ":" + peoples[i].age;
    containerUl.appendChild(li);
};

//數(shù)組的迭代方法,更加簡(jiǎn)潔
peoples.forEach((people) => {
    li = document.createElement("li");
    li.innerHTML = people.name + ":" + people.age;
    containerUl.appendChild(li);
})

上面只是舉了一個(gè)簡(jiǎn)單的例子,其實(shí)我們?cè)谌粘5拈_(kāi)發(fā)過(guò)程中遠(yuǎn)不止此,而且要比這個(gè)復(fù)雜的很多很多,所以如何高效的進(jìn)行工作的開(kāi)發(fā)是非常有必須要的。下面就從我們比較常用的一個(gè)一個(gè)的來(lái)說(shuō)起。

forEach()

該方法對(duì)數(shù)組的每一個(gè)元素執(zhí)行給定的函數(shù),返回 undefined(或者說(shuō)無(wú)返回值)。

該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí) this 的值。

傳入的回調(diào)函數(shù)會(huì)接受三個(gè)參數(shù)分別是:數(shù)組中的元素(item),元素的索引(index,可選),數(shù)組本身(array,可選)。

//語(yǔ)法
array.forEach(callback[, this])
array.forEach(callback(item, index, array){
    //函數(shù)體,執(zhí)行的操作
});

//看個(gè)例子,本質(zhì)上與 for 循環(huán)一樣
let items = ["a", "b", "c"];
items.forEach(function (item) {
    console.log(item);
});

for (let i = 0; i < items.length; i++) {
    console.log(items[i])
}

最后我們來(lái)看看 forEach() 方法的兼容性,直接上圖。

Chrome Edge Firefox Internet Explorer Opera Safari
Yes Yes 1.5 9 Yes Yes
map()

該方法對(duì)數(shù)組的每一個(gè)元素執(zhí)行給定的函數(shù),返回一個(gè)新的數(shù)組,新數(shù)組的結(jié)果是原數(shù)組中元素執(zhí)行方法后的結(jié)果。

該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí) this 的值。

傳入的回調(diào)函數(shù)會(huì)接受三個(gè)參數(shù)分別是:數(shù)組中的元素(item),元素的索引(index,可選),數(shù)組本身(array,可選)。

//語(yǔ)法
var newArrs = array.map(callback[, this])
var newArrs = array.map(callback(item, index, array){
    //return 執(zhí)行后的結(jié)果
});

//例子
let numbers = [1, 2, 3];
let newNumbers = numbers.map(x => x * x);
console.log(newNumbers); //[1, 4, 9]

在我們?nèi)粘i_(kāi)發(fā)工作中,會(huì)遇到非常多的數(shù)據(jù)格式化的過(guò)程,利用這些方法可以大大方便我們的處理。

例如類(lèi)數(shù)組轉(zhuǎn)換為數(shù)組的過(guò)程

});

例如格式化需要的數(shù)據(jù)

let peoples = ["Liu", "Cao", "Pan"];
let peoplesInfo = peoples.map(people => {
    return {
        name: people,
        age: Math.floor(Math.random()*20)
    }
});
console.log(peoplesInfo);
// [{name: Liu, age: XX}, 
//  {name: Cao, age: XX}, 
//  {name: Pan, age: XX}]
當(dāng)然我們?cè)趯?shí)際工作中的數(shù)據(jù)復(fù)雜度遠(yuǎn)不止此,但是我們可以明顯感覺(jué)到這些方法處理數(shù)據(jù)的優(yōu)勢(shì)所在。

最后我們來(lái)看看 map() 方法的兼容性,直接上圖。

Chrome Edge Firefox Internet Explorer Opera Safari
Yes Yes 1.5 9 Yes Yes
filter

該方法也是對(duì)數(shù)組的每一個(gè)元素執(zhí)行給定的函數(shù),返回一個(gè)新的數(shù)組,新數(shù)組是由每項(xiàng)返回 true 的項(xiàng)組成。簡(jiǎn)單來(lái)說(shuō)就是篩選出來(lái)我們想要的。

該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí) this 的值。

傳入的回調(diào)函數(shù)會(huì)接受三個(gè)參數(shù)分別是:數(shù)組中的元素(item),元素的索引(index,可選),數(shù)組本身(array,可選)。

//語(yǔ)法
var newArrs = array.filter(callback[, this])
var newArrs = array.filter(callback(item, index, array){
    //return 滿足條件的項(xiàng)
});

//例子
let numbers = [1, 2, 3, 4, 5];
let newNumbers = numbers.filter(x => x > 2);
console.log(newNumbers); //[3, 4, 5]

「filter」方法在實(shí)際工作中也同樣有著很多的作用,例如:我們找出一群人中哪些是小朋友。

var peoples = [{name: "liu", age: 9}, 
            {name: "jiang", age: 18}, 
            {name: "cao", age: 20}, 
            {name: "pan", age: 3}];
var childrens = peoples.filter(people => people.age < 10);
console.log(childrens);

最后我們來(lái)看看 filter() 方法的兼容性,直接上圖。

Chrome Edge Firefox Internet Explorer Opera Safari
Yes Yes 1.5 9 Yes Yes
every

該方法是對(duì)數(shù)組的每一個(gè)元素執(zhí)行給定的函數(shù),
如果數(shù)組中的每個(gè)元素都滿足給定的條件則返回 true,否則返回 false。

該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí) this 的值。

傳入的回調(diào)函數(shù)會(huì)接受三個(gè)參數(shù)分別是:數(shù)組中的元素(item),元素的索引(index,可選),數(shù)組本身(array,可選)。

//語(yǔ)法
var newArrs = array.every(callback[, this])
var newArrs = array.every(callback(item, index, array){
    //執(zhí)行方法
});

//例子
var number = [2, 3, 4, 5, 6];
var result1 = number.every(item => item > 4);
console.log(result1); //false
var result2 = number.every(item => item > 1);
console.log(result2); //true

我們?cè)趤?lái)看看 every() 方法的兼容性,直接上圖。

Chrome Edge Firefox Internet Explorer Opera Safari
Yes Yes 1.5 9 Yes Yes
some

該方法是對(duì)數(shù)組的每一個(gè)元素執(zhí)行給定的函數(shù),
如果數(shù)組中的有一個(gè)元素滿足條件則返回 true,如果全部不滿足條件則返回 false。

該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí) this 的值。

傳入的回調(diào)函數(shù)會(huì)接受三個(gè)參數(shù)分別是:數(shù)組中的元素(item),元素的索引(index,可選),數(shù)組本身(array,可選)。

//語(yǔ)法
var newArrs = array.some(callback[, this])
var newArrs = array.some(callback(item, index, array){
    //執(zhí)行方法
});

//例子
var number = [2, 3, 4, 5, 6];
var result1 = number.some(item => item < 1);
console.log(result1); //false
var result2 = number.some(item => item > 5);
console.log(result2); //true

我們?cè)趤?lái)看看 some() 方法的兼容性,直接上圖。

Chrome Edge Firefox Internet Explorer Opera Safari
Yes Yes 1.5 9 Yes Yes
可以看出 every 方法是全部返回 true 時(shí),整個(gè)函數(shù)才返回 true;some 方法則是全部返回 false 時(shí),整個(gè)函數(shù)才返回 false。

今天我們就說(shuō)這么多,希望你有所收獲,接下來(lái)還請(qǐng)繼續(xù)關(guān)注,我們繼續(xù)來(lái)說(shuō)數(shù)組的其他一系列的方法。

關(guān)注微信公眾號(hào):六小登登。領(lǐng)取全套學(xué)習(xí)資源

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/97632.html

相關(guān)文章

  • Javascript數(shù)組系列二之迭代方法2

    摘要:該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí)的值。 今天我們來(lái)繼續(xù) Javascript 數(shù)組系列的文章,上文 《Javascript數(shù)組系列二之迭代方法1》 我們說(shuō)到一些數(shù)組的迭代方法,我們?cè)陂_(kāi)發(fā)項(xiàng)目實(shí)戰(zhàn)的過(guò)程中熟練的使用可以大大提高我們的開(kāi)發(fā)效率以及數(shù)據(jù)的處理。接下來(lái)我們繼續(xù)來(lái)講解其他的一些迭代的方法。 天也黑了,時(shí)間也不早了,話不多說(shuō),擼起袖...

    fredshare 評(píng)論0 收藏0
  • Javascript數(shù)組系列五之增刪改和強(qiáng)大的 splice()

    摘要:刪除數(shù)組元素的開(kāi)始索引需要?jiǎng)h除元素的個(gè)數(shù),插入數(shù)組的元素語(yǔ)法因?yàn)閰?shù)變化多樣,我們主要從三個(gè)方面來(lái)展示的用法。 今天是我們介紹數(shù)組系列文章的第五篇,也是我們數(shù)組系列的最后一篇文章,只是數(shù)據(jù)系列的結(jié)束,所以大家不用擔(dān)心,我們會(huì)持續(xù)的更新干貨文章。 生命不息,更新不止! 今天我們就不那么多廢話了,直接干貨開(kāi)始。 我們?cè)凇禞avascript數(shù)組系列一之棧與隊(duì)列》中描述我們是如何利用 pus...

    chavesgu 評(píng)論0 收藏0
  • python綜合學(xué)習(xí)二之多進(jìn)程

    摘要:本節(jié)講學(xué)習(xí)的多進(jìn)程。和之前的的不同點(diǎn)是丟向的函數(shù)有返回值,而的沒(méi)有返回值。所以接下來(lái)讓我們來(lái)看下這兩個(gè)進(jìn)程是否會(huì)出現(xiàn)沖突。 本節(jié)講學(xué)習(xí)Python的多進(jìn)程。 一、多進(jìn)程和多線程比較 多進(jìn)程 Multiprocessing 和多線程 threading 類(lèi)似, 他們都是在 python 中用來(lái)并行運(yùn)算的. 不過(guò)既然有了 threading, 為什么 Python 還要出一個(gè) multip...

    gityuan 評(píng)論0 收藏0
  • Map學(xué)習(xí)二之LinkedHash,HashTable,計(jì)算一個(gè)給定字符串的每個(gè)字符出現(xiàn)的次數(shù)

    package com.itheima.demo03.Map; import java.util.HashMap;import java.util.LinkedHashMap; /* java.util.LinkedHashMap entends HashMap Map 接口的哈希表和鏈接列表實(shí)現(xiàn),具有可預(yù)知的迭代順序。 底層原理: 哈希表+鏈表(記錄元素的順序) */public cla...

    Rocture 評(píng)論0 收藏0
  • clay教程二之布局的使用

    摘要:上圖是布局的計(jì)算模型。刪除方法刪除的只是布局保存的數(shù)據(jù),然后重繪畫(huà)面,如果你需要畫(huà)面平滑改變,修改繪圖實(shí)現(xiàn)方法即可,這里不再贅述。 作者:心葉時(shí)間:2018-11-06 14:47 clay項(xiàng)目Github地址:https://github.com/yelloxing/... 喜歡本項(xiàng)目的可以在github上給給star。 在繪制一些常見(jiàn)圖形的時(shí)候,比如關(guān)系圖,單個(gè)結(jié)點(diǎn)或連線并不難,麻...

    Forest10 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<