js 用下標獲取map值_js map方法處理返回數據,獲取指定數據簡寫方法

map方法處理返回數據,獲取指定數據簡寫方法

前言

后端返回數據為數組列表時,通常比較全面,包含了很多不需要的數據,可以通過 map 方法處理返回數據,篩選出想要的數據

例如

// 返回數據

res = [{

id: 1,

name: 'zhangsan',

age: 16,

gender: 0

}, {

id: 2,

name: 'lisi',

age: 20,

gender: 1

}]

如果只想獲取 res 每項中的 id 和 name

即為

// 處理后的數據

data = [{

id: 1,

name: 'zhangsan'

}, {

id: 2,

name: 'lisi'

}]

最簡單的方法就是 for 循環遍歷,本文不講 for 循環,講一下 map 的簡單寫法

進入正題

下面統一按照上述的 res 數據為例子

首先從 map 最簡單的方式實現 data

const data = res.map(function(item) {

return {

id: item.id,

name: item.name

}

})

當然可以使用 ES6 箭頭函數簡化

const data = res.map(item => ({ id: item.id, name: item.name }))

注意:這里需要注意的是使用箭頭函數返回一個對象時不能直接去寫 {} ,要在對象后面加上括號 ({}),防止和函數后面的大括號沖突而報錯

上面是正常的寫法,利用 ES6 解構賦值,還可以簡寫為如下

騷操作來了

const data = res.map(({ id, name }) => ({ id, name }))

怎么樣,是不是變得非常簡潔,但是會有一部分人在這里懵逼了,不要著急,往下看

其實真正理解起來也不難,從上述簡單的方式來看,箭頭函數前面的參數 ({id, name}) 實際上是把 item 解構成了兩個變量,其中這兩個變量是 item 中存在的,即為 id, name ,然后后面是返回了一個對象,就可以用前面兩個解構出來的變量了,由于 key 和 value 一樣,所以寫成了對象的簡寫方式

但是這種只適用于 key 值一樣的情況,如果想換 data 的 key 值怎么辦呢

例如想讓處理后的 data 的 id 變為 code

// 處理后的數據

data = [{

code: 1,

name: 'zhangsan'

}, {

code: 2,

name: 'lisi'

}]

聰明的同學已經懂了,這個時候只需要操作后面返回的數據即可

即為

const data = res.map(({ id, name }) => ({ code: id, name }))

完結撒花

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

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

相關文章

《Python Cookbook 3rd》筆記匯總

文章目錄一、數據結構二、字符串和文本三、數字、日期和時間四、迭代器與生成器五、文件與IO一、數據結構 標題關鍵詞1.1:拆分序列后賦值給多個變量可迭代對象、拆分賦值1.2:拆分任意長可迭代對象后賦值給多個變量可迭代對象、拆分賦值、星號表達式1.3&…

mysql hp ux_hp ux apa 切換

(HP-UX Only) OR - 1 heartbeat network using APA with 2 trunk members (HP-UX Only) OR - 1 heartbeat network with serial line (HP-UX Only) OR......一、 概述 HP 的 APA 軟件提供兩種網卡冗余切換模式,用以實現網絡高可用性...0x000000000000 hp_apa HP-UX 11i v3 Prer…

Python中[:]與[::]的用法

Python中[:]與[::]的用法 概述 [:]與[::]語法是通用序列操作(Common Sequence Operations)其中的兩個。用[:]或[::]對多數序列類型(可變的或不可變的)(如字符串、列表等)序列中元素進行截取。 [:]的用法…

mysql redis 中間件_Docker快速搭建Mysql社區版,Redis,MongoDb、MQ等等中間件。

一:安裝docker社區版。Centos系列(最好用7以上的版本,docker需要3.1以上的linux內核版本)sudo yum install docker-ce docker-ce-cli containerd.iosudo systemctl start dockersudo docker run hello-world如果你敲docker info需要root密碼,…

JavaScript中String的slice(),substr(),substring()三者區別

JavaScript中String的slice(),substr(),substring()三者區別 共同之處 從給定的字符串中截取片段,并返回全新的這片段的字符串對象,且不會改動原字符串。 具體不同之處 slice() str.slice(beginIndex[, endIndex])參數描述be…

pythontuple數據類型_數據類型-元組Tuple

Python Tuple用于存儲不可變python對象的序列。元組類似于列表,因為可以改變列表中存儲的項的值,而元組是不可變的,并且不能改變存儲在元組中的項的值。元組可以寫成用小括號括起來的逗號分隔值的集合。元組可以定義如下。T1 (101, "Ay…

《劍指Offer》24:反轉鏈表

題目 定義一個函數,輸入一個鏈表的頭節點,反轉鏈表并輸出反轉后鏈表的頭節點。鏈表節點定義如下: public static class ListNode{public int val;public ListNode next;public ListNode(int val) {this.val val;} }分析 方法一&#xff1…

python兩個for循環為什么第二個循環里值不變_兩個for循環,第二個只在第一個迭代python上執行...

我是一個pythonnoob,我試圖比較兩個文件中的行之間的值,如果行在第二個文件中,則輸出“line name”,然后輸出1;如果第二個文件中缺少該行,則輸出0。第一次迭代返回1,因為該行在第二個文件中&…

python如何問問題_學會正確的提問

可能很多讀者看到這個標題會感覺很可笑,提問誰不會啊,互聯網時代,提問還不是一句話的事情?個人、技術群、論壇里都可以提問啊,「你好」「在嗎?」「有人用過 xx 工具嗎?」。首先,提問…

如何保證接口的冪等性

如何保證接口的冪等性 什么是冪等性 冪等性是系統服務對外一種承諾,承諾只要調用接口成功,外部多次調用對系統的影響是一致的。聲明為冪等的服務會認為外部調用失敗是常態,并且失敗之后必然會有重試。 通俗地說,接口冪等性就是…

mysql二進制方式_MySQL數據庫之MySql二進制連接方式詳解

本文主要向大家介紹了MySQL數據庫之MySql二進制連接方式詳解 ,通過具體的內容向大家展現,希望對大家學習MySQL數據庫有所幫助。使用mysql二進制方式連接您可以使用MySQL二進制方式進入到mysql命令提示符下來連接MySQL數據庫。實例以下是從命令行中連接my…

xposed模塊編寫教程_太極xposed模塊使用教程

今天給大家分享一下太極xposed模塊使用教程。很多小伙伴說下載不到Xposed模塊,這個網上其實很多,但是第三方的下載站就算了吧。我也是一個深受其害的網癮少年,只要是下載站的軟件,一不留心一次性電腦可能會多安裝好多個軟件&#…

如何使用mysql添加更新_Mysql 存在既更新,不存在就添加(sql語句)

討人喜歡的 MySQL replace into 用法(insert into 的增強版)在向表中插入數據的時候,經常遇到這樣的情況:1. 首先判斷數據是否存在; 2. 如果不存在,則插入;3.如果存在,則更新。在 SQL Server 中可以這樣處理…

linux + nginx + mysql + php 百度網盤_5.LNMP(Linux + Nginx + MySQL + PHP)環境安裝

1.安裝Nginx:yum install yum-priorities -ywget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpmrpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpmyum -y install nginxsystemctl start nginx.servicesystemctl stop ngin…

LeetCode - Easy - 28. Implement strStr()

Topic Two Pointers, String Description https://leetcode.com/problems/implement-strstr/ Implement strStr(). Return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. needle /?ni?dl/ n.針 haystack /?he?…

mysql item_MySQL源代碼:關于MySQL的Item對象

前篇介紹了MySQL如何從SQL語句轉換成一個內部對象。本文是前篇的延續,將更加詳細的介紹WHERE語句對應的Item對象。1. Item對象MySQL InternalMySQL Internals Manual較為詳細的介紹了Item對象。Item對象經常被稱作"thingamabob"(A thingamabob is a noun …

python的發展趨勢圖_用Python繪制趨勢圖

我在數據幀中有以下數據:-------------------------------------------------------| Physician Profile Id | Program Year | Value Of Interest |-------------------------------------------------------| 1004777 | 2013 | 83434288.00 || 1004777 | 2014 | 89…

mysql的實現類注解_Mybaits (XML方式:無需在寫Dao的實現類 注解方式:Dao的實現類與Mapper都可以不寫 重點理解)...

Maven的pom.xml 坐標配置4.0.0Mybatis_mavenday01_mbatis1.0-SNAPSHOTjarorg.mybatismybatis3.4.5mysqlmysql-connector-java5.1.45junitjunit4.12testorg.apache.maven.pluginsmaven-compiler-plugin2.3.21.81.8UTF-8mybatis的配置文件/p>PUBLIC "-//mybatis.org//DTD…

SQL字符串中單引號與換行符的轉義

問題 打算將文本文件內容添加至MySQL數據庫,則需要對文本中的單引號和換行符進行轉義,否則無法編寫合法的SQL。 解法 迭代文本文件的行時,將原行尾的換行符剔除掉,并拼接\\n;迭代文本文件的行時,將原行中的替換成。…

mysql 建庫字段_MySQL 的字段類型以及建庫策略

一、數字類型所謂的“數字類”,就是指 DECIMAL 和NUMERIC,它們是同一種類型。它嚴格的說不是一種數字類型,因為他們實際上是將數字以字符串形式保存的;他的值的每一位(包括小數點)占一個字節的存儲空間,因此這種類型耗…