js陣列的迭代器方法(some、every、forEach、map、filter)
//陣列操作之迭代器方法(這些方法可以對陣列中的每一個元素運用某個方法)
//一、不生成新陣列的迭代器方法
//1、forEach方法(接收一個函式作為引數)
function square(num){
alert(num * num) ;
}
var nums = [1,2,3,4,5];
console.log(nums.forEach(square));
//2、every方法(接收一個返回值為布林值的函式,對陣列中的每一個元素使用該函式)
function isEven (num) {
return num % 2 ==0;
}
var evens=[2,4,6,8,10];
var isAllEven = evens.every(isEven); //當且僅當陣列中的所有的元素返回為真,every函式才會返回為真
if(isAllEven){
alert("all is even");
}else{
alert("not all is even");
}
//3、some方法(只要陣列中有一個元素使用方法返回為真,some函式就會返回真)
var nums = [1,2,3,5,7,9];
function isEven (num) {
return num % 2==0;
}
alert(nums.some(isEven)); //true
//4.reduce方法
//用法一:為陣列中的元素求和
function add (currentTotal,currentValue) {
//alert(currentValue);
//alert(currentTotal);
return currentTotal+currentValue;
}
var nums = [1,2,3,4,5,6,7];
alert(nums.reduce(add));
//用法二:將陣列中的元素連線成一個長的字串
function linkStr (foreStr,currentStr) {
return foreStr + currentStr;
}
var strings = ["nolan","is","studying","javascript"];
alert(strings.reduce(linkStr));
//二、生成新陣列的迭代器方法
//1.map方法(類似於不生成新陣列中的forEach方法)
//用法一:取陣列中每個單詞的第一個字母
function firstAlpha (word) {
return word[0].toUpperCase();
}
var words = ["nolan","is","studying","javascript"];
var firstAlphas = words.map(firstAlpha);
alert(firstAlphas.join("")); //使用join可以去掉連線陣列元素的逗號
//2.filter方法(類似於every方法)
//用法一:篩選出符合條件(即返回值為true)的元素
function isEven (num) {
return num % 2==0;
}
var nums=[1,2,4,6,8,10];
var evens = nums.filter(isEven);
alert(evens);
//案例:隨機生成一些成績,挑選出大於六十分的成績
function pass (grade) {
if(grade>60){
return true;
}else{
return false;
}
}
var grades = [];
for(var i=0;i<20;i++){
grades[i]=Math.floor(Math.random()*101);
}
alert(grades);
var passedGrades=grades.filter(pass);
alert(passedGrades);
相關推薦
js陣列的迭代器方法(some、every、forEach、map、filter)
//陣列操作之迭代器方法(這些方法可以對陣列中的每一個元素運用某個方法) //一、不生成新陣列的迭代器方法 //1、forEach方法(接收一個函式作為引數) function square(num){ alert(num * n
js數組的叠代器方法(some、every、forEach、map、filter)
reac floor all com mat pan scrip links 第一個 數組操作之叠代器方法(這些方法可以對數組中的每一個元素運用某個方法) 一、不生成新數組的叠代器方法 1、forEach方法(接收一個函數作為參數) function square(n
陣列的使用(2) ---迭代器方法
迭代器方法:指對陣列中的每個元素都應用一個函式,可以返回一個值、一組值、或者一個新陣列。 不生成新陣列的迭代器方法 ① forEach() 接收一個函式作為引數,對於陣列中的每個元素都使用該函式 var num = [1,2,3,4,5,6,7]
python3:深刻理解__iter__和__next__ 迭代器的原理(用自定義迭代器方法進行講解)
1.iter 的用法 咱都知道, list ,tuple,dict 都是可迭代物件,如果想讓他們轉化成迭代器. 我們可以這麼做,呼叫 inter()方法,它會返回一個迭代器. 例如: from collections import Iterable,Iterator a=[1,
js 陣列迭代方法,歸併方法
1.js 提供了一些迭代的方法,包括every,some,filter,map,forEach. every():對陣列中的每一項執行給定函式,如果該函式對每一項都返回true,則返回true。 filter():對陣列中的每一項執行給定函式,返回該函式會
js中陣列迭代的方法
1.every():對陣列中的每一項執行給定函式,如果該函式對每一項都返回true,則最終結果返回true; 2.some():對陣列中的每一項執行給定函式,如果該函式對任一項都返回true,則最終結果返回true; 3.filter():對陣列中的每一項執行給定函式
支援IE8及以下的,原生JS陣列迭代的五種方法
IE真是讓前端開發者頭疼的問題,在解決陣列的迭代的過程中,IE8及以下並不能很好的支援。於是去網上搜了搜陣列迭代中的every方法,在一個部落格大V中搬過來後,發現仍會報錯,又比
<C++學習十三>C++迭代器介紹(未完待續)
摘要: 本篇部落格僅作為筆記,如有侵權,請聯絡,立即刪除(網上找部落格學習,然後手記筆記,因紙質筆記不便儲存,所以儲存到網路筆記) 迭代器簡介: (1)迭代器類似於指標型別,它也提供了對物件的間接訪問。 (2)指標是C語言中就有的東西,迭代器是C++中才有的,指標用起來靈活高效,迭代器功能更
重走Java設計模式——迭代器模式(Iterator Pattern)
迭代器模式 定義 提供一種方法順序訪問一個聚合物件中各個元素, 而又無須暴露該物件的內部表示。 模式結構 1.抽象容器:一般是一個介面,提供一個iterator()方法,例如java中的Collection介面,List介面,Set介面等。 2.具體
SGISTL原始碼閱讀六 迭代器下(traits程式設計技法)
SGISTL原始碼閱讀六 迭代器下(traits程式設計技法) 前言 上一篇部落格我們瞭解了迭代器的相應型別,簡單的引數推導機制可以實現針對不同的型別進行不同的操作,但是這並不能解決所有的情況。本文章將要介紹_STL原始碼門鑰_——traits程式設計技法。 凡是原生指標,都沒有
SGISTL原始碼閱讀五 迭代器上(迭代器的五種相應型別associated types)
SGISTL原始碼閱讀五 迭代器上(迭代器的五種相應型別associated types) 前言 之前在對STL的簡介中說到過,迭代器的作用是將資料結構(容器)和演算法粘合在一起,我們可以將它理解成smart pointer,它是一種行為類似指標的物件。 什麼是相應型別? 最
python 學習彙總25:迭代器iter( tcy)
迭代器 2018/6/12 目錄: iter 1.iter 2.iter-型別判斷 3.iter-解包 itertools工具 1.itertools函式簡表 見本人相關博文 2.itertools函式詳細說明 見本人相關博文 3
(五)設計模式之迭代器模式(Iterator)
前言: 參考圖書:軟體設計模式與體系結構 參考部落格:https://www.cnblogs.com/wanson/articles/9277813.html 正題: 迭代器(iterator)有時又稱遊標
23種設計模式之(二十三)迭代器模式(python_c++實現) .md
23種設計模式之(二十三)迭代器模式(Iterator) 本文主要介紹23種設計模式之迭代器模式,附詳細python/c++示例程式碼。 概念 應用場景 注意事項 程式碼示例 總結 程式碼連結 迭代器模式(Iterator) 概念 迭代模式,是行為模式之一
迭代器模式(java版)
迭代器模式的組成部分 Aggregate(抽象聚合類) 它用於儲存和管理元素物件,宣告一個createiterator()方法用於建立一個迭代器物件,充當抽象迭代器工廠角色。 ConcreteAggregate(具體聚合類) 它用於抽象聚合類的子類,實現了在抽象集合類中的宣告的crea
foreach遍歷實現原理_迭代器實現(使用foreach)
遍歷陣列或者集合時,之所以使用foreach可以實現,那是因為類中繼承了IEnunerable介面,此介面可以重寫IEnumerator型別的GetEnumerator()方法(此方法即得到一個列舉器),正是因為這個介面(方法)所以foreach才會起到遍歷的作用 上程式碼: namespace
iterator迭代器 || begin()、end()返回值型別
迭代器是廣義上的指標,事實上,它可以是指標,也可以是一個對其執行類似指標的操作——如解除引用(如operator*())和遞增(如operator++()) ——的物件。 通過將指標廣義化為迭代器,讓STL能夠為各種不同的容器類(包括哪些簡單指標無法處理的類)提供統一的介面。每個容器類
我所理解的設計模式(C++實現)——迭代器模式(Iterator Pattern)
概述: 在現在的電視機中,我們使用[後一個]和[前一個]按鈕可以很方便的換臺,當按下[後一個]按鈕時,將切換到下一個預置的頻道。想象一下在陌生的城市中的旅店中看電視。當改變頻道時,重要的不是幾頻道,而是節目內容。如果對一個頻道的節目不感興趣,那麼可以換下一個頻道,而不需要知道它是幾頻道。
C++標準模板庫---迭代器介紹(iterator、const_iterator)
迭代器 概念:C++的一種機制,用來遍歷標準模板庫容器中的元素,是一種"智慧"指標 一、迭代器的特點 迭代器是一種智慧指標,具有遍歷複雜資料結構的能力 不同的容器有不一樣的內部結構,因此會有一樣的迭代器型別 迭代器定義後,並不屬於某一例項容器物件,只要是屬於該迭代器
設計模式之迭代器模式(Iterator Pattern)
這篇部落格,我們要詳細講解的是迭代器模式(Iterator Pattern),將要講解的內容有:迭代器模式 的定義,作用,詳細設計分析等方面。 一、Pattern name 迭代器模式(Iterator Pattern) : 提供一種方法