摘要:方法對數(shù)組的每個元素執(zhí)行一次提供的函數(shù)。與的區(qū)別是返回一個循環(huán)處理后的數(shù)組,不改變原數(shù)組的值,而則只是遍歷一遍數(shù)組,執(zhí)行提供的函數(shù)。對于放在空數(shù)組上的任何條件,此方法返回。
forEach
forEach() 方法對數(shù)組的每個元素執(zhí)行一次提供的函數(shù)。
var array1 = ["a", "b", "c"]; array1.forEach(function(element) { console.log(element); }); // expected output: "a" // expected output: "b" // expected output: "c"
forEach()是沒有辦法中止或者跳出循環(huán)的,除非拋出一個異常。
mapmap() 方法創(chuàng)建一個新數(shù)組,其結(jié)果是該數(shù)組中的每個元素都調(diào)用一個提供的函數(shù)后返回的結(jié)果。
var array1 = [1, 4, 9, 16]; // pass a function to map const map1 = array1.map(x => x * 2); console.log(map1); // expected output: Array [2, 8, 18, 32]
map()與forEach()的區(qū)別是map返回一個循環(huán)處理后的數(shù)組,不改變原數(shù)組的值,而forEach則只是遍歷一遍數(shù)組,執(zhí)行提供的函數(shù)。
for offor...of語句在可迭代對象(包括 Array,Map,Set,String,TypedArray,arguments 對象等等)上創(chuàng)建一個迭代循環(huán),調(diào)用自定義迭代鉤子,并為每個不同屬性的值執(zhí)行語句
let iterable = [10, 20, 30]; for (const value of iterable) { console.log(value); } // 10 // 20 // 30
關(guān)于for...of語句遍歷更多用法mdn
filterfilter() 方法創(chuàng)建一個新數(shù)組, 其包含通過所提供函數(shù)實現(xiàn)的測試的所有元素。
var words = ["spray", "limit", "elite", "exuberant", "destruction", "present"]; const result = words.filter(word => word.length > 6); console.log(result); // expected output: Array ["exuberant", "destruction", "present"]reduce
reduce() 方法對數(shù)組中的每個元素執(zhí)行一個由您提供的reducer函數(shù)(升序執(zhí)行),將其結(jié)果匯總為單個返回值。
const array1 = [1, 2, 3, 4]; // 1 + 2 + 3 + 4 console.log(array1.reduce((accumulator, currentValue) => accumulator + currentValue)); // expected output: 10every
every() 方法測試數(shù)組的所有元素是否都通過了指定函數(shù)的測試。
function isBigEnough(element, index, array) { return (element >= 10); } var passed = [12, 5, 8, 130, 44].every(isBigEnough); // passed is false passed = [12, 54, 18, 130, 44].every(isBigEnough); // passed is truesome
some() 方法測試是否至少有一個元素通過由提供的函數(shù)實現(xiàn)的測試。
對于放在空數(shù)組上的任何條件,此方法返回false。
[2, 5, 8, 1, 4].some(x => x > 10); // false [12, 5, 8, 1, 4].some(x => x > 10); // true
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/102368.html
摘要:但實際中,內(nèi)部迭代器和外部迭代器兩者并無優(yōu)劣。迭代器并不只迭代數(shù)組迭代器模式不僅能迭代數(shù)組,還可以迭代一些類數(shù)組對象。晚安了,參考設(shè)計模式與開發(fā)實踐曾探本文作者本文鏈接迭代器模式設(shè)計模式與開發(fā)實踐閱讀筆記 迭代器模式:一個相對簡單的模式,目前絕大多數(shù)語言都內(nèi)置了迭代器,以至于大家都不覺得這是一種設(shè)計模式 迭代器模式 迭代器模式指提供一種方法訪問一個聚合對象中的各個元素,而又不需要暴露該...
摘要:下面就總結(jié)下中常見的幾種循環(huán)方法。因為循環(huán)將遍歷對象本身的所有可枚舉屬性,以及對象從其構(gòu)造函數(shù)原型中繼承的屬性。上也明確提示不應該用于迭代一個,其中索引順序很重要。 引言 平時工作中循環(huán)的使用場景可以說是非常之多了,昨天改別人代碼時候有位同事非常喜歡用ES6等新特性,一個數(shù)組的遍歷全部都是用for...of...,然后業(yè)務需求要用到數(shù)組中的序號index值,就很尷尬了,我只能改回for...
摘要:今天寫個函數(shù)時想遍歷數(shù)組,想想沒怎么用過這類的語法,于是做了個嘗試,竟發(fā)現(xiàn)無法改變數(shù)組元素。這里我們可以看到的本質(zhì)是返回一個迭代器第三,迭代器是如何獲得值的迭代器通過方法返回值,而不是指向地址,所以在迭代中無法改變數(shù)組元素參考材料 今天寫個函數(shù)時想遍歷數(shù)組,想想沒怎么用過for...of...這類的語法,于是做了個嘗試,竟發(fā)現(xiàn)for...of...無法改變數(shù)組元素。 貼代碼,上例子 l...
摘要:根據(jù)使用的方法不同,這個函數(shù)執(zhí)行后的返回值可能會也可能不會影響方法的返回值。對數(shù)組中的每一項運行給定函數(shù),返回改函數(shù)會返回的項組成的數(shù)組。 ECMAScript 為數(shù)組定義了五個迭代方法。 每個方法都接收兩個參數(shù):要在每一項上運行的函數(shù)和(可選的)運行該函數(shù)的作用域?qū)ο蟆绊憈his的值。 傳入這些方法中的函數(shù)會接收三個參數(shù):數(shù)組項的值、該項在數(shù)組中的位置和數(shù)組對象本省。 根據(jù)使用的...
摘要:還有一個就是,我本身在數(shù)組的遍歷上,基本都是用循環(huán)進行操作,在開始使用了迭代方法之后,我循環(huán)用的很少。對數(shù)組中每一項運行給定函數(shù)。返回該函數(shù)會返回的項組成的數(shù)組。 前言 數(shù)組的迭代方法,這個想必大家都不陌生了,可能剛?cè)腴T的人暫時還沒接觸到這個。但是以后的開發(fā)中,肯定會用得上的。我自身的一個使用經(jīng)歷就是,如果迭代方法用的適當,不但可以減少代碼量,也能使代碼可讀性更強,性能上的優(yōu)化也是肯定...
閱讀 984·2021-11-24 09:39
閱讀 2185·2021-11-16 11:54
閱讀 2077·2021-11-11 17:22
閱讀 2372·2021-09-30 09:55
閱讀 3591·2021-08-12 13:22
閱讀 1626·2019-08-30 15:44
閱讀 1168·2019-08-29 12:12
閱讀 3263·2019-08-27 10:58