ES6擴展運算符...進行的數組刪除

今天寫了按照React小書寫了Reducer,發現基礎真是太重要了,所有關于上層建筑的細節都需要回到下層細節中去尋找,而且現在的基礎也由ES3變成了ES6了。

const ADD_USER = "ADD_USER"
const DELETE_USER = "DELETE_USER"
const UPDATE_USER = "UPDATE_USER"const usersReducer = (state = [], action) => {switch (action.type) {case ADD_USER:return [...state, action.user]case DELETE_USER:return [...state.slice(0, action.index), ...state.slice(action.index + 1)]case UPDATE_USER:return {...state, user: state.map((item, index) => {if (index == action.index) {return action.user}})}default:return state}
}

通過上面這種擴展運算符的方式,可以將 數組里面的值展開。

也許我們還需要知道,ES6中的擴展運算符是不支持對象擴展的,不過 ES7 是支持的

利用擴展運算符我們能夠很好地簡化我們的代碼,比如 上方就是 Object.assign 的一種簡化(環境需要支持ES7)

let obj1 = {a: 1, b: 2};
let obj2 = {b: 3, c: 4};
console.log(Object.assign({}, obj1, obj2)); // way1
console.log({...obj1, ...obj2});            // way2

以上代碼的執行結果是相同的。但我們要知道如果寫 Object.assign(obj1, obj2)與上兩者有些不同。

如果只是想要和合并出一個新的對象請采用 way1 和 way2,如果是合并一個老對象用上面這句話。


在 Redux 中,推薦這種刪除方式。

const deleteNumber = (arr, index) => {return [...arr.slice(0, index), ...arr.slice(index + 1)];
};
let testArr = [1, 2, 3, 4, 5];
console.log(deleteNumber(testArr, 4)); // [1, 2, 3, 4]

需要注意的是slice是返回一個新數組,確切地說是新的子數組,不會改變原來的數組。


complete.

轉載于:https://www.cnblogs.com/can-i-do/p/7200705.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/369965.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/369965.shtml
英文地址,請注明出處:http://en.pswp.cn/news/369965.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

中南大學在線考試答案計算機基礎,中南大學《計算機基礎》在線考試題庫(267題)(有答案).doc...

中南大學《計算機基礎》在線考試題庫(267題)(有答案).doc 計算機基礎01 總共89題共100分 一. 單選題 (共35題,共35分) 1. 域名服務器DNS的主要功能是( )。 (1分) A.通過請求及回答獲取主機和網絡相關的信息 B.查詢主機的MAC地址 C.為主機自動命名 D.合理分配IP地址 ★標準答案&…

自動化的OSGi測試運行器

在我的團隊成員中,我以忘記維護(JUnit)測試套件而聞名。 我只是無法為此付出額外的手動為套件添加測試的步驟。 幸運的是,有連續的集成服務器通過命名模式收集測試。 如果我介紹的一項孤立測試失敗了,那么它會脫穎而出…

php post請求后端拿不到值_PHP Post獲取不到非表單數據的問題解決辦法

問題描述在使用vue-axios向后端post數據時,PHP端獲取不到post的數據。問題解決修改php.ini配置找到php.ini配置文件,查找enable_post_data_reading變量,修改為打開狀態,注釋掉句前分好; Whether PHP will read the POST data.; Th…

CSS制作簡單loading動畫

曾經以為,loading的制作需要一些比較高深的web動畫技術,后來發現大多數loading都可以用“障眼法”做出來。比如一個旋轉的圓圈,并不都是將gif圖放進去,有些就是畫個靜止圖像,然后讓它旋轉就完了。gif圖也可以&#xff…

機器學習:多變量線性回歸

************************************** 注:本系列博客是博主學習Stanford大學 Andrew Ng 教授的《機器學習》課程筆記。博主深感學過課程后,不進行總結非常easy遺忘,依據課程加上自己對不明確問題的補充遂有此系列博客。本系列博客包含線性…

Java對象復活

總覽 收集覆蓋了finalize()的對象之后,將其添加到終結處理隊列中,以在調用每個對象的finalize()方法之后進行清理。 如果您復活該物體,會發生什么? 何時定稿? finalize方…

經過路由無法找到計算機,電腦無法啟動服務提示系統找不到指定的路徑(圖)

原標題:"電腦無法啟動服務提示系統找不到指定的路徑"相關電腦問題教程分享。 - 來源:191路由網。眾所周知,使用電腦的時候需要啟動一些服務才能使用相關的功能,但是如果出現無法啟動服務項,并且提示“錯誤3:…

有關域索引錯誤產生的原因及解決辦法

1說明 數據庫錯誤ORA-29861:域索引標記為LOADING/FAILED/UNUSABLE,其錯誤原因及解決辦法,根據ORACLE官方文檔的說法如下: // *Cause: An attempt has been made to access a domain index that is// being built or is marked faile…

詳細解讀css中的浮動以及清除浮動的方法

對于前端初學者來說,css浮動部分的知識是一塊比較難以理解的部分,下面我將把我學習過程中的心得分享給大家。 導讀: 1.css塊級元素講解 2.css中浮動是如何產生的 3.出現浮動后,如何清除浮動(本文將涉及到多種清除浮動…

微信多開txt_電腦版微信怎么雙開、多開

新建一個txt文本文件,在文件中寫入如下代碼:echo offstart /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exestart /d "C:\Program Files (x86)\Tencent\WeChat\" WeChat.exeexit保存文本文件。這里需要注意的是&#xff1a…

java 基礎--隨筆

---恢復內容開始--- java 對大小寫敏感。 java沒有任何無符號類型(unsigned)。 C/C是編譯型語言,java是解釋性語言。 JAVA編譯過程同C/C 的 編譯有些不同。當C編譯器編譯生成一個對象的代碼時,該代碼是為在某一特定硬件平臺運行而…

多源計算機培訓,多源數據匯聚的多流形學習算法研究

摘要:隨著信息技術和互聯網的飛速發展,人們可以從多個信息源獲得數據,即多源數據.由于多源數據具有類型多樣,尺度不統一等特點,對多源數據進行匯聚并提取有效信息是機器學習和模式識別等領域研究的熱點.由于多流形學習能夠有效地揭示復雜數據中的內在結構,因此本文主…

Ubuntu 16.04 安裝mysql5.7

技術更新換代,數據庫也不斷更新,需要不斷努力學習,下面就是如何在 ubuntu中安裝 mysql。 廢話不多說,上來就是干 一、安裝mysql 5.7 sudo apt-get update sudo apt-get install mysql-server 中間會提示您輸出root 密碼&#xff…

CSS多列布局(實例)

前言 一列布局二列布局三列布局 1 一列布局 一列布局&#xff1a; HTML部分 <!DOCTYPE html> <html> <head> <meta charset"utf-8" /> <title>一列布局</title> </head> <body> <div class"head">…

阿帕奇駱駝備忘單

輪詢一個空目錄&#xff08;并發送一個空消息&#xff0c;正文為空&#xff09;&#xff1a; from(file://temp?sendEmptyMessageWhenIdletrue)停止路線&#xff1a; .process(new Processor() {public void process(Exchange exchange) throws Exception {getContext().stopR…

js中雙感嘆號_JavaScript中雙嘆號(!!)作用

經常看到這樣的例子&#xff1a;vara&#xff1b;var b!!a;a默認是undefined。!a是true&#xff0c;!!a則是false&#xff0c;所以b的值是false&#xff0c;而不再是undefined&#xff0c;也非其它值&#xff0c;主要是為后續判斷提供便利。!!一般用來將后面的表達式強制轉換為…

大頭貼計算機教程,推薦!自家電腦也能拍大頭貼的秘密

您可能感興趣的話題&#xff1a;美圖拍拍核心提示&#xff1a;一直都超愛拍大頭貼&#xff0c;喜歡每張都能換不同的框框&#xff1b;喜歡可以直接看到效果&#xff0c;做出滿意的動作&#xff1b;喜歡將大頭貼和朋友們分享……不過夏日炎炎的&#xff0c;出門太麻煩&#xff0…

用CSS偽類制作一個不斷旋轉的八卦圖?

前言 介紹一下如何制作一個不斷旋轉的八卦圖。快速預覽代碼及效果&#xff0c;點擊&#xff1a;八卦圖 代碼如下&#xff1a; HTML部分 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>JS Bin</title> </head&…

js根據ip自動獲取地址(省市區)

HTML&#xff1a; <html><head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, user-scalableno, initial-scale1.0, maximum-scale1.0, minimum-scale1.0"><title>標題</title>&l…

流利的對象創建

關于此主題的文章很多&#xff08;絕大多數&#xff09;&#xff0c;但我只是想貢獻我的兩分錢&#xff0c;寫一篇簡短的文章&#xff0c;介紹如何使用Java中的Fluent Object Creation模式或對象構建器實例化Value Objects。 值對象是由其狀態&#xff08;值&#xff09;而不是…