1. 程式人生 > >javascript中陣列的常用高階函式

javascript中陣列的常用高階函式

什麼是高階函式?

高階函式的定義:如果一個函式操作其他函式,即將其他函式作為引數或將

函式作為返回值,則稱這個函式是一個高階函式。

javascript的陣列中有常用哪些高階陣列?

陣列的高階函式一覽表

函式的作用

函式名

描述

遍歷

forEach接收一個操作當前元素的函式,從而完成遍歷中重複的操作,此函式沒有返回值(注:可參考下列模擬原始碼來分析為什麼沒有返回值,因為即使傳遞一個有返回值的函式當引數,每次操作中產生的返回值也只是引數函式的返回值,不是forEach函式的返回值)
過濾filter接收一個判斷每個元素是否符合過濾條件的函式,從而過濾出符合條件的元素(注:類似SQL語句中的where子句)
對映map接收一個返回指定對映屬性的值的函式(注:類似SQL語句中的select語句)
聚合彙總reduce接收兩個引數,第一個引數是描述資料聚合策略的函式(該函式必需有兩個引數,第一個是彙總變數,第二個是遍歷時的當前值),第二個引數值是統計變數的初始值(注:返回的結果是一個獨立的值)
//陣列中的高階函式 forEach
console.log("------------陣列中的高階函式 forEach------------");
function forEach(array,action){
  for(var i=0; i<array.length; i++)
    action(array[i]);
}
var strs=["tom","zack","leo"];
//forEach(strs,console.log);
var numbers=[0,1,2,3,4,5,6,7,8,9],sum=0;
//forEach(numbers,function(number){sum += number;});
//console.log(sum);
numbers.forEach(function(number){sum += number;});  
console.log(sum);
//numbers.forEach(console.log);

//JSON test
console.log("------------JSON test------------");
var obj = {
  "name":"lili",
  "sex":"female",
  "age":18
};
var jsonStr = JSON.stringify(obj);
console.log(jsonStr);
var jsonObj = JSON.parse(jsonStr);
console.log(jsonObj);

//陣列中的高階函式 filter
console.log("------------陣列中的高階函式 filter------------");
var persons = [
  {"name":"lili",
  "sex":"female",
  "age":18},
  {"name":"zack",
  "sex":"male",
  "age":20},
  {"name":"ruby",
  "sex":"female",
  "age":24},
  {"name":"leo",
  "sex":"male",
  "age":30},
  {"name":"lucy",
  "sex":"female",
  "age":35},
];
var passedBySex = persons.filter(
  function(person){
    return person.sex=="male";
});
console.log(passedBySex);

//陣列中的高階函式 map
console.log("------------陣列中的高階函式 map------------");
var mapName = passedBySex.map(
  function(person){
    return person.name;
});
console.log("單項資料對映name:",mapName);
var personsNameAndAge = persons.map(
  function(person){
    return {"name":person.name,"age":person.age};
});
console.log("多項資料對映name和age:",personsNameAndAge);

//陣列中的高階函式 reduce
console.log("------------陣列中的高階函式 reduce------------");
var personsAge = persons.map(function(person){return person.age;});
var reduceAge = personsAge.reduce(
  function(a,b){
    return a+b;
});
console.log(reduceAge,persons[0].age+persons[1].age);

此外陣列中還有兩個標準方法,分別是every和some,every函式的作用類似於運算子&&,some函式的作用類似於||

var numbers = [11,12,13,14,22,23];
var test=numbers.every(function(num){
  return num>10;
});
console.log(test);
test=numbers.some(function(num){
  return num>16;
});
console.log(test);



相關推薦

【重溫基礎】JS常用高階函式介紹

Ps. 晚上加班到快十點,回來趕緊整理整理這篇文章,今天老大給我推薦了一篇文章,我從寫技術部落格中收穫到了什麼?- J_Knight_,感受也是很多,自己也需要慢慢養成記錄部落格的習慣,即使起步艱難,難以堅持,但還是要讓自己加油加油。 前兩天把我整理的【複習資料】ES6/ES7/ES8/ES

javascript陣列常用的方法和屬性

前言 在javascript中,陣列是一種非常重要的資料型別,我們時常會和它打交道,最近在開發專案中頻繁的使用到陣列,但是自己對陣列的眾多方法已經是非常模糊了,為了方便自己以後能夠更好的使用陣列中的屬性和方法,在此記錄一下。 陣列常用的屬性和方法 常用屬性 Array.length:返回陣列的

javascript陣列常用高階函式

什麼是高階函式? 高階函式的定義:如果一個函式操作其他函式,即將其他函式作為引數或將 函式作為返回值,則稱這個函式是一個高階函式。javascript的陣列中有常用哪些高階陣列?陣列的高階函式一覽表函式的作用函式名描述遍歷forEach接收一個操作當前元素的函式,從而完成遍

JavaScript陣列Array.prototype的常用的方法彙總

Array建構函式的API,我們可以通過控制檯列印Array.prototype可以知道有以下這些方法。這是Array的原型物件的所有方法,對陣列而言是可以繼承所有的這些方法的: 接下來,我們就以12個比較常見常用的API開始說起: 1. join() 將陣列轉化為字串,並且以某個

javaScript陣列的幾種常用方法

1.splice(2,3,4)刪除陣列中任意項(三個引數). 2.splice(1,3)刪除從第一項開始的往後三項(兩個引數).(splice可以結合pop(),unshift(),push(),shift()來理解) 3.push()在陣列的末尾增加一項. 4.unshift()在陣列

javaScript陣列常用方法

一、建立陣列的兩種方法: (1) var arr1 = [1,2]; (2) var arr2 = new Array(1,2); 建立空陣列方法: var arr3 = []; var arr4= new Array(); 注:方法(2

JavaScript陣列去重的幾種常用方法

專案中經常會處理一些資料,像一個json資料,裡邊全是陣列,要把所有的資料的相同的屬性值放在一個數組裡,然後再判重,獲取最終的資料,所以就會經常用到陣列判重,於是找了幾個常用的方法。如下: 第一種:先把原陣列的第一個值傳進新陣列,然後從索引為1開始遍歷原陣列

javascript常用表單事件用法

round onload tel logs () case span onsubmit change 下面介紹幾種javascript中常用的表單事件; 一,onsubmit:表單中的確認按鈕被點擊時發生的事件,如下案例。 案例解析:彈出表單中提交的內容

javascriptDate常用方法

hour 代碼 pan getdate date 一個 value str spa 一、Date的構造函數 有四種形式的Date構造函數: //1.構造函數沒有參數,則返回當前日期的Date對象 var now=new Date(); //2.構造函數的參數為日期的毫秒數

JavaScript 常用12種循環遍歷(數組或對象)的方法

back nts 這樣的 index 數字 for 慢慢 nta pre 1、for 循環 let arr = [1,2,3]; for (let i=0; i<arr.length; i++){ console.log(i,arr[i]) }

python一些常用函式(不定時更新)

一、random函式 import random # 在1~20中隨機取一個數 print(random.choice(range(1, 20))) 9 # 在1~20中隨機取五個陣列成一個列表 print(random.choices(range(1, 20), k=5)) [3, 1

JavaScript陣列相關基礎操作及實現

JavaScript中陣列操作比較靈活,關於js中陣列操作,寫了一些陣列操作程式碼,並在瀏覽器控制檯驗證。以下是js程式碼: <script type="text/javascript"> console.log("---------------JavaScript陣列相關實

javascript的立即執行函式(function(){…})()

javascript和其他程式語言相比比較隨意,所以javascript程式碼中充滿各種奇葩的寫法,有時霧裡看花,當然,能理解各型各色的寫法也是對javascript語言特性更進一步的深入理解。 ( function(){…} )()和( function (){…} () )是兩種javasc

Kotlin學習之常用高階函式:filter

與filter相似的還有以下幾個: filterNot()和filterNotTo():與filter相反,這兩個函式會過濾出不符合條件的元素; filterIndexed()和filterIndexedTo():這兩個函式接受(Int,T)->Boolean型別的函式,同時檢

TensorFlow一些常用函式

一、tf.trainable_variables : 返回所有 當前計算圖中 在獲取變數時未標記 trainable=False 的變數集合。【可用來更新所有引數時使用】 二、tf.control_dependencies(control_inputs): 此函式指定某些操作執行的依賴關係 返回一個控

JavaScript陣列陣列的方法

一.陣列及陣列的方法 1.陣列的概念: 是值資料的集合,在JavaScript中陣列中的資料型別可以是不同的. 2.陣列的宣告: (1)var 陣列的名稱=new Array(); (2)var 陣列的名稱=[]; 3.陣列的初始化 (1)var 陣列的名稱=new Array(‘值1’

Jmeter 常用函式

函式:在jmeter 中我們可以將函式理解為是工具本身已經封裝好的一些功能,我們只需要去使用就可以得到相應的結果。 函式的基本語法和使用: ${__functionName( 引數 )} 【 在jmeter 中我們不需要死記函式,因為函式助手 】

js陣列操作常見函式forEach,map,reduce,filter,slice

var a = [1,22,333,4444,55555] function Counter() { this.sum = 0; } js中運算元組的常見函式有: forEach((ite

JavaScript陣列定義的幾種方法,以及關於陣列長度的討論

大家在使用JavaScript編寫指令碼語言的時候,尤其是習慣使用Java語言的朋友,定義了一個固定長度的陣列,但是使用了一個超出定義陣列的元素,程式並沒有報“陣列越界”錯誤,這到底是什麼原因呢?今天我們來分享一下! 1、陣列定義的四種方法: var arr_1 = ne

JavaScript陣列的應用

Array的應用   1)建立 new Array();new Array(size);new Array(element,element,...,element); 2)、Array物件屬性 constructor 返回對建立此物件的陣列函式的引用length 設定或者返回陣列中元素