日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数组的一些与遍历相关的方法总结

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数组的一些与遍历相关的方法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Array.prototypr.every():為數組中的每一個元素執行一次callback函數,直到它找到一個使callback返回false的元素。

  如果找到一個這樣的元素,every方法會立即返回false,否則會為每一個元素返回true,every也會返回true。callback被調用時傳入三個參數:元素值,元素的索引,原數組。callback只會為那些已經被賦值的索引調用,不會為那些被刪除或從來沒被賦值的索引調用。every不會改變原數組。空數組返回true。
  語法:arr.every(callback[, thisArg])

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 true

  

Array.prototype.filter():創建一個新數組,其包含通過所提供函數實現的測試的所有元素。

  語法:var new_array = arr.filter(callback[, thisArg])

function isBigEnough(value) { return value >= 10; }var filtered = [12, 5, 8, 130, 44].filter(isBigEnough);// filtered is [12, 130, 44]// ES6 wayconst isBigEnough = value => value >= 10;let [...spread]= [12, 5, 8, 130, 44];let filtered = spread.filter(isBigEnough);// filtered is [12, 130, 44] 

  filter為數組中的每個元素調用一次callback函數,并利用所有使得callback返回true或等價于true的值的元素創建一個新數組。callback只會在已經賦值的索引上被調用,對于那些已經被刪除或者從來未被賦值的索引不會被調用。那些沒有通過callback測試的元素會被跳過,不會包含在新數組中。filter 不會改變原數組,它返回過濾后的新數組。

Array.prototype.forEach():對數組的每個元素執行一次提供的函數。該方法沒有返回一個新數組,也沒有返回值!
  語法:

array.forEach(callback(currentValue, index, array){//do something }, this)
//或
array.forEach(callback[, thisArg])

  Eg:

const arr = ['a', 'b', 'c'];arr.forEach(function(element) {console.log(element); });arr.forEach( element => console.log(element));// a // b // c

  forEach方法按升序為數組中含有效值的每一項執行一次callback函數,那些已刪除或者未初始化的項將被跳過(但不包含值為undefined的項)。沒有辦法終止或跳出forEach循環,除了拋出一個異常。
  如果數組在迭代時被修改了,則其它元素會被跳過:

var words = ["one", "two", "three", "four"]; words.forEach(function(word) { console.log(word); console.log(words); if (word === "two") {words.shift(); } }); // one // ["one", "two", "three", "four"] // two // ["one", "two", "three", "four"] // four // ["two", "three", "four"] //"one"被刪除后,后面的元素向前移動一位,"three"移到"two"的位置上,而"two"位置已經被迭代過了,所以會跳過"three"。

Array.prototype.map():創建一個新數組,其結果是該數組中的每個元素都調用一個函數后返回的結果。
  語法:

let new_array = arr.map(function callback(currentValue, index, array) { // Return element for new_array }[, thisArg])

  Eg:

// ES6 let numbers = [1, 5, 10, 15]; let doubles = numbers.map( x => x ** 2);// doubles is now [1, 25, 100, 225] // numbers is still [1, 5, 10, 15]let numbers = [1, 4, 9]; let roots = numbers.map(Math.sqrt); // roots is now [1, 2, 3] // numbers is still [1, 4, 9]

  map方法會給原數組中的每個元素都按順序調用一次callback函數。callback每次執行后的返回值(包括undefined)組合起來形成一個新數組。callback函數只會在有值的索引上被調用,那些從來沒被賦過值或者使用delete刪除的索引則不會被調用。

Array.prototype.reduce():reduce()方法對累加器和數組中的每個元素(從左到右)應用一個函數,將其減少為單個值。

var sum = [0, 1, 2, 3].reduce(function (a, b) { return a + b; }, 0); // sum is 6
//ES6 var total = [ 0, 1, 2, 3 ].reduce( ( acc, cur ) => acc + cur, 0 );

Array.prototype.some():some() 方法測試數組中的某些元素是否通過由提供的函數實現的測試。
  some 為數組中的每一個元素執行一次 callback 函數,直到找到一個使得 callback 返回一個“真值”(即可轉換為布爾值 true 的值)。如果找到了這樣一個值,some 將會立即返回 true。否則,some 返回 false。callback 只會在那些”有值“的索引上被調用,不會在那些被刪除或從來未被賦值的索引上調用。與Array.prototypr.every()是相對的,參考Array.prototypr.every()即可。

轉載于:https://www.cnblogs.com/zhengxj1991/p/9100470.html

總結

以上是生活随笔為你收集整理的数组的一些与遍历相关的方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。