国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

filter、map、reduce 一次性說清楚

這篇具有很好參考價值的文章主要介紹了filter、map、reduce 一次性說清楚。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

filter

filter() 方法是 JavaScript 中數(shù)組的一個方法,用于篩選數(shù)組中符合指定條件的元素,并返回一個新的數(shù)組,新數(shù)組中包含篩選出的元素。

filter() 方法語法如下:

arr.filter(callback(element[, index[, array]])[, thisArg])

其中,參數(shù) callback 是一個回調(diào)函數(shù),用于定義篩選規(guī)則,該函數(shù)接收三個參數(shù) element、index、array,分別代表當前正在被處理的元素、該元素的索引和數(shù)組本身。函數(shù)返回 true 時,當前元素被保留到新數(shù)組中;返回 false 時,當前元素被過濾掉,不會出現(xiàn)在新數(shù)組中。

除了 callback 參數(shù)之外,filter() 方法還支持一個可選參數(shù) thisArg,用于指定回調(diào)函數(shù)中的 this 指向,這個參數(shù)可以省略。如果指定了 thisArg 參數(shù),則 callback 中的 this 指向該參數(shù)的值。

下面是一些 filter() 方法的例子:

// 過濾一個數(shù)組中的奇數(shù),返回一個新的數(shù)組
const nums = [1, 2, 3, 4, 5, 6];
const odds = nums.filter(num => num % 2 !== 0);
console.log(odds); // [1, 3, 5]

// 針對數(shù)組對象進行篩選,返回一個新的對象數(shù)組
const users = [
  { name: 'Jack', age: 24 },
  { name: 'Peter', age: 30 },
  { name: 'Mary', age: 26 }
];
const adults = users.filter(user => user.age >= 18);
console.log(adults); // [{ name: 'Jack', age: 24 }, { name: 'Peter', age: 30 }, { name: 'Mary', age: 26 }]

// 根據(jù)數(shù)組對象進行篩選,返回一個新的對象數(shù)組
const users = [
  { name: 'Jack', age: 24 },
  { name: 'Peter', age: 30 },
  { name: 'Mary', age: 26 }
];
const jack = users.filter(user => user.name === 'Jack');
console.log(jack); // [{ name: 'Jack', age: 24 }]

map

map() 方法是 JavaScript 中數(shù)組的一個方法,用于對數(shù)組中的每個元素進行轉(zhuǎn)換,并將轉(zhuǎn)換后的元素存儲到一個新的數(shù)組中,最終返回這個新數(shù)組。

map() 方法語法如下:

arr.map(callback(element[, index[, array]])[, thisArg])

其中,參數(shù) callback 是一個回調(diào)函數(shù),用于定義轉(zhuǎn)換規(guī)則,該函數(shù)接收三個參數(shù) element、index、array,分別代表當前正在被處理的元素、該元素的索引和數(shù)組本身。函數(shù)返回的值將被存儲到新數(shù)組中。

除了 callback 參數(shù)之外,map() 方法還支持一個可選參數(shù) thisArg,用于指定回調(diào)函數(shù)中的 this 指向,這個參數(shù)可以省略。如果指定了 thisArg 參數(shù),則 callback 中的 this 指向該參數(shù)的值。

下面是一些 map() 方法的例子:

// 將一個數(shù)組中的所有元素乘以 2,返回一個新的數(shù)組
const nums = [1, 2, 3, 4, 5];
const doubles = nums.map(num => num * 2);
console.log(doubles); // [2, 4, 6, 8, 10]

// 對數(shù)組對象中的某個屬性進行操作,返回一個新的對象數(shù)組
const users = [
  { name: 'Jack', age: 24 },
  { name: 'Peter', age: 30 },
  { name: 'Mary', age: 26 }
];
const userNames = users.map(user => user.name);
console.log(userNames); // ['Jack', 'Peter', 'Mary']

// 根據(jù)數(shù)組對象進行轉(zhuǎn)換,返回一個新的對象數(shù)組
const users = [
  { name: 'Jack', age: 24 },
  { name: 'Peter', age: 30 },
  { name: 'Mary', age: 26 }
];
const newUsers = users.map(user => ({ ...user, gender: 'unknown' }));
console.log(newUsers); // [{ name: 'Jack', age: 24, gender: 'unknown' }, { name: 'Peter', age: 30, gender: 'unknown' }, { name: 'Mary', age: 26, gender: 'unknown' }]

map和filter的區(qū)別是什么

map() 和 filter() 方法都是 JavaScript 數(shù)組的方法,它們的作用不同。

map() 方法用于對數(shù)組中的每個元素進行轉(zhuǎn)換,并將轉(zhuǎn)換后的元素存儲到一個新的數(shù)組中,最終返回這個新數(shù)組。該方法不會改變原來的數(shù)組。通常情況下,使用 map() 方法可以簡化代碼,并提升程序的可讀性和可維護性。

filter() 方法用于對數(shù)組中的元素進行過濾,并將符合條件的元素存儲到一個新的數(shù)組中,最終返回這個新數(shù)組。該方法不會改變原來的數(shù)組。通常情況下,使用 filter() 方法可以輕松地從大量數(shù)據(jù)中篩選出需要的數(shù)據(jù),同時也可以提高程序的可讀性和可維護性。

可以總結(jié)出 map() 與 filter() 的區(qū)別:

  • map() 方法會將數(shù)組中的每個元素進行轉(zhuǎn)換,并返回一個新數(shù)組;而 filter()方法會根據(jù)指定的條件篩選數(shù)組中的元素,并返回一個新數(shù)組。
  • map() 方法沒有改變原數(shù)組的內(nèi)容,而 filter() 方法也沒有改變原數(shù)組的內(nèi)容。
  • map() 方法會保留原數(shù)組中的每個元素,只是將其轉(zhuǎn)化為另一種形式,即新數(shù)組的長度與原數(shù)組的長度相等;而 filter()方法將會根據(jù)篩選條件保留或排除原數(shù)組中的各個元素,使得返回的新數(shù)組長度可能小于原數(shù)組長度。

因此,如果想要對數(shù)組中的元素進行轉(zhuǎn)換操作,則應(yīng)使用 map() 方法;如果想要根據(jù)某個條件篩選出符合條件的元素,則應(yīng)使用 filter() 方法

reduce

reduce() 是 JavaScript 數(shù)組的一個方法,它可以用于對數(shù)組元素執(zhí)行一個歸并操作,并將最終結(jié)果返回。通常情況下,reduce() 可以用來進行累加、求和、求平均值等操作。下面是 reduce() 方法的詳細使用方法:

Array.prototype.reduce(callback[, initialValue]) 方法接受一個回調(diào)函數(shù) callback 和一個可選的初始值 initialValue 作為參數(shù)。其中,callback 函數(shù)接受四個參數(shù):累計器(也就是上一次回調(diào)返回的值或者初始值),當前元素,當前索引和原始數(shù)組。

具體使用時,reduce() 方法從數(shù)組的第一個元素開始遍歷,每次將遍歷到的元素傳入回調(diào)函數(shù)中進行處理,并將處理結(jié)果作為下一次遍歷的初始值傳入回調(diào)函數(shù)中。最后,返回的結(jié)果即為最終的累積值。

如果沒有指定初始值 initialValue,則 reduce() 方法會從數(shù)組的第二個元素開始遍歷,將第一個元素作為初始值傳入回調(diào)函數(shù)中。如果數(shù)組為空且沒有提供初始值,則 reduce() 方法會拋出一個 TypeError 異常。

下面是一些 reduce() 方法的例子:文章來源地址http://www.zghlxwxcb.cn/news/detail-455118.html

// 求數(shù)組所有元素的和
const nums = [1, 2, 3, 4, 5];
const sum = nums.reduce((acc, curr) => acc + curr);
console.log(sum); // 15

// 使用初始值計算數(shù)組所有元素的和
const sumWithInit = nums.reduce((acc, curr) => acc + curr, 10);
console.log(sumWithInit); // 25

// 求數(shù)組所有元素的平均值
const avg = nums.reduce((acc, curr, index, array) => {
  acc += curr;
  if (index === array.length - 1) {
    return acc / array.length;
  } else {
    return acc;
  }
});
console.log(avg); // 3

// 對一個對象數(shù)組中的某個屬性求和
const users = [
  { name: 'Jack', score: 92 },
  { name: 'Peter', score: 85 },
  { name: 'Mary', score: 88 }
];
const totalScore = users.reduce((acc, curr) => acc + curr.score, 0);
console.log(totalScore); // 265

到了這里,關(guān)于filter、map、reduce 一次性說清楚的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • SQL中去除重復(fù)數(shù)據(jù)的幾種方法,我一次性都告訴你?

    SQL中去除重復(fù)數(shù)據(jù)的幾種方法,我一次性都告訴你?

    使用SQL對數(shù)據(jù)進行提取和分析時,我們經(jīng)常會遇到數(shù)據(jù)重復(fù)的場景,需要我們對數(shù)據(jù)進行去重后分析。 以某電商公司的銷售報表為例,常見的去重方法我們用到distinct 或者group by 語句, 今天介紹一種新的方法,利用窗口函數(shù)對數(shù)據(jù)去重。 【字段解釋】 訪客id:進入店鋪瀏覽

    2024年02月06日
    瀏覽(35)
  • chatgpt賦能python:Python如何一次性輸入多個數(shù)?教你使用Python中的多種方法

    在python編程中,我們經(jīng)常需要輸入多個數(shù)值。為了提高效率,Python提供了多種方法可以一次性輸入多個數(shù)值。本篇文章將介紹幾種常見的,在Python中如何一次性輸入多個數(shù)值的方法。 最基礎(chǔ)的方法是使用Python中內(nèi)置的 input() 函數(shù)以及字符串的 split() 函數(shù)。 input() 函數(shù)用于從控

    2024年02月12日
    瀏覽(94)
  • 谷歌發(fā)布Self-Debug方法,讓大模型學(xué)會自己修bug,一次性生成正確代碼

    谷歌發(fā)布Self-Debug方法,讓大模型學(xué)會自己修bug,一次性生成正確代碼

    文 | 智商掉了一地 你有沒有想過,讓一臺計算機診斷和修復(fù)自己生成的錯誤代碼?一篇最新的研究論文介紹了一種名為 Self-Debugging 的技術(shù),通過在生成的代碼中添加自解釋的信息,讓計算機像一個可以自己修復(fù)代碼的程序員一樣調(diào)試自己的 BUG。 隨著大型語言模型(LLMs)在

    2023年04月19日
    瀏覽(17)
  • python 一次性刪除列表(list)的空白元素(空內(nèi)容) 或者 一次性刪除列表(list)中的指定元素

    看看下述代碼: 輸出: 當你遇見這種情況,有哪些方法來去除里面的空內(nèi)容呢(即 \\\'\\\' )? 1.1 刪除空內(nèi)容(方法一) : 輸出: 1.2 刪除空內(nèi)容(方法二) : 需要 配合 lambda 表達式 一起使用! 輸出: 2.3 刪除指定內(nèi)容 : 輸出: 注 :此方法既可以刪除空元素,也可以刪除指

    2024年02月03日
    瀏覽(304)
  • 公眾號一次性訂閱消息

    公眾號一次性訂閱消息

    洛塔服務(wù)號回復(fù)007獲取代碼。 之前發(fā)布通知,要用訂閱通知替代一次性訂閱消息,不知道是被罵的太慘還是技術(shù)原因,一次性訂閱消息還是一直能用。 和模板消息不同的是,一次性訂閱消息無需用戶關(guān)注公眾號,但是必須用戶點擊同意發(fā)送才能接收消息。 模板消息:需要關(guān)

    2024年02月09日
    瀏覽(90)
  • 《一次性分割一切》閱讀筆記

    《一次性分割一切》閱讀筆記

    目錄 0 體驗 1 摘要 2 十個問題 參考文獻 體驗地址 :SEEM - a Hugging Face Space by xdecoder 體驗結(jié)果 : 將哈士奇和汽車人從圖片中分割出來。 盡管對于交互式人工智能系統(tǒng)的需求不斷增長,但在視覺理解(例如分割)中的人工智能交互方面,很少有全面的研究。本文受到基于提示的

    2024年02月01日
    瀏覽(171)
  • Python:一次性輸出多個量

    有的時候我們在輸入一個字符串時,需要在中間加一個int類型變量時,如果一段一段輸出就要寫三個print,非常麻煩。今天bug君就給大家講講如何在Python里一次性輸出多個量。 粽所粥汁,在Python里輸出需要寫 print(\\\"輸出內(nèi)容\\\") ,而輸出一個變量則需要寫 print(變量名) 。 注意:

    2024年02月04日
    瀏覽(99)
  • 一次性打包學(xué)透 Spring

    一次性打包學(xué)透 Spring

    不知從何時開始,Spring 這個詞開始頻繁地出現(xiàn)在 Java 服務(wù)端開發(fā)者的日常工作中,很多 Java 開發(fā)者從工作的第一天開始就在使用 Spring Framework,甚至有人調(diào)侃“不會 Spring 都不好意思自稱是個 Java 開發(fā)者”。 之所以出現(xiàn)這種局面,源于 Spring 是一個極為優(yōu)秀的一站式集成框架

    2023年04月19日
    瀏覽(102)
  • 如何一次性啟動多個SpringBoot項目

    如何一次性啟動多個SpringBoot項目

    在做微服務(wù)這塊的架構(gòu)設(shè)計的時候,當微服務(wù)數(shù)量越來越多的時候,本地啟動各個服務(wù)的時候,可能得手動啟動每個啟動類。這樣就很麻煩,因此記錄一下如何在 idea 里面一鍵啟動所有的項目。 比如我項目里面有5個微服務(wù):那么就對應(yīng)了5個啟動類。 1.項目右上角編輯: 2.點

    2024年02月16日
    瀏覽(231)
  • charles證書安裝,一次性說明白

    charles證書安裝,一次性說明白

    windows上安裝好charles后,需要給軟件安裝證書。 1、點擊help - SSL proxying,選擇第二個install Charles Root Certificate證書安裝 ? 2、如果以前安裝過證書,但是過期了(有效期一般1年),證書界面會顯示過期字樣,此時就要先點擊一下Reset Charles Root Certificate,然后再點擊第一步中的

    2024年02月05日
    瀏覽(104)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包