Vue數(shù)組響應(yīng)式操作及高階函數(shù)使用代碼詳解
數(shù)組的響應(yīng)式操作
//this.letters.push('123');//在末尾添加一個(gè)元素
//this.letters.pop();//從末尾刪除一個(gè)元素
//this.letters.unshift('111');//在開端添加一個(gè)元素
//this.letters.shift();//從開端刪除一個(gè)元素
//this.letters.splice(1,2);//從下標(biāo)為1的元素開始刪除兩個(gè)元素
//this.letters.splice(1,2,'777','888');//從下標(biāo)為1的元素開始刪除兩個(gè)元素,并插入一個(gè)新元素
//this.letters.splice(1, 0, '777', '888'); //在下標(biāo)為1處插入兩個(gè)元素
//this.letters.splice(2);//保留前2個(gè)元素,其他的刪除掉
高階函數(shù)
1、filter過濾函數(shù)
filter也是一個(gè)常用的操作,它用于把Array的某些元素過濾掉,然后返回剩下的元素。
filter把傳入的函數(shù)依次作用于每個(gè)元素,然后根據(jù)返回值是true還是false決定保留還是丟棄該元素。
const nums = [2,3,5,1,77,55,100,200]; let newArray = nums.filter(function (n) { //小于100就是true,進(jìn)入newArray數(shù)組 return n < 100; }) console.log(newArray);//[2,3,5,1,77,55]
2、map高階函數(shù)
map函數(shù)同樣會(huì)遍歷數(shù)組每一項(xiàng),傳入回調(diào)函數(shù)為參數(shù),num是map遍歷的每一項(xiàng),回調(diào)函數(shù)function返回值會(huì)被添加到新數(shù)組中
const nums = [2,3,5,1,77,55,100,200]; let newArray = nums.filter(function (n) { //小于100就是true,進(jìn)入newArray數(shù)組 return n < 100; }) console.log(newArray);//[2,3,5,1,77,55]
3、reduce高階函數(shù)
reduce函數(shù)同樣會(huì)遍歷數(shù)組每一項(xiàng),傳入回調(diào)函數(shù)和‘0'為參數(shù),0表示回調(diào)函數(shù)中preValue初始值為0,回調(diào)函數(shù)中參數(shù)preValue是每一次回調(diào)函數(shù)function返回的值,currentValue是當(dāng)前值
const nums = [2,3,5,1,77,55,100,200]; let new3Array = nums.reduce(function (preValue,currentValue) { //數(shù)組為[2,3,5,1,77,55,100,200],則回調(diào)函數(shù)第一次返回值為0+2=2,第二次preValue為2,返回值為2+3=5,以此類推直到遍歷完成 return preValue+currentValue; },0);//第二個(gè)參數(shù)0是preValue的初始值 console.log(new3Array);//443
4、sort排序算法
因?yàn)锳rray的sort()方法默認(rèn)把所有元素先轉(zhuǎn)換為String再排序,結(jié)果'10'排在了'2'的前面,因?yàn)樽址?1'比字符'2'的ASCII碼小。如果不知道sort()方法的默認(rèn)排序規(guī)則,直接對(duì)數(shù)字排序,絕對(duì)栽進(jìn)坑里!
//要按數(shù)字大小排序,我們可以這么寫: var arr = [10, 20, 1, 2]; arr.sort(function (x, y) { if (x < y) { return -1; } if (x > y) { return 1; } return 0; }); // [1, 2, 10, 20] //如果要倒序排序,我們可以把大的數(shù)放前面: var arr = [10, 20, 1, 2]; arr.sort(function (x, y) { if (x < y) { return 1; } if (x > y) { return -1; } return 0; }); // [20, 10, 2, 1]
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 詳解實(shí)現(xiàn)vue的數(shù)據(jù)響應(yīng)式原理
- Vue3 響應(yīng)式偵聽與計(jì)算的實(shí)現(xiàn)
- 如何在Vue中使localStorage具有響應(yīng)式(思想實(shí)驗(yàn))
- 詳細(xì)分析vue響應(yīng)式原理
- Vue3 的響應(yīng)式和以前有什么區(qū)別,Proxy 無敵?
- 原理深度解析Vue的響應(yīng)式更新比React快
- vue數(shù)據(jù)響應(yīng)式原理知識(shí)點(diǎn)總結(jié)
- Vue data的數(shù)據(jù)響應(yīng)式到底是如何實(shí)現(xiàn)的
- 深入理解Vue的數(shù)據(jù)響應(yīng)式
相關(guān)文章
vue的簡(jiǎn)介及@vue/cli?腳手架的使用示例
vue 是一個(gè) 漸進(jìn)式的javascript框架,腳手架是一個(gè)通用概念,幫助搭建項(xiàng)目的工具,本文以vue2為例結(jié)合實(shí)例代碼給大家詳細(xì)講解,感興趣的朋友跟隨小編一起看看吧2022-12-12ant-design-vue Table pagination分頁(yè)實(shí)現(xiàn)全過程
這篇文章主要介紹了ant-design-vue Table pagination分頁(yè)實(shí)現(xiàn)全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04vue element-ui el-table組件自定義合計(jì)(summary-method)的坑
這篇文章主要介紹了vue element-ui el-table組件自定義合計(jì)(summary-method)的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02electron-vue利用webpack打包實(shí)現(xiàn)多頁(yè)面的入口文件問題
項(xiàng)目需要在electron的項(xiàng)目中新打開一個(gè)窗口,利用webpack作為靜態(tài)資源打包器,發(fā)現(xiàn)在webpack中可以設(shè)置多頁(yè)面的入口,今天來講一下我在electron中利用webpack建立多頁(yè)面入口的踩坑經(jīng)驗(yàn),需要的朋友可以參考下2019-05-05vite中的glob-import批量導(dǎo)入的實(shí)現(xiàn)
本文主要介紹了vite中的glob-import批量導(dǎo)入的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07Vue-pdf實(shí)現(xiàn)在線預(yù)覽PDF文件
這篇文章主要為大家詳細(xì)介紹了Vue-pdf實(shí)現(xiàn)在線預(yù)覽PDF文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05Vuex模塊化實(shí)現(xiàn)待辦事項(xiàng)的狀態(tài)管理
本文主要介紹了Vuex模塊化實(shí)現(xiàn)待辦事項(xiàng)的狀態(tài)管理的相關(guān)知識(shí),具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-03-03