使用 mapObjIndexed() 改變 Object 的 Value
栏目: JavaScript · 发布时间: 5年前
内容简介:在 Array,我們有VS Code 1.35.1Quokka 1.0.227
在 Array,我們有 map()
能在 Length 不變前提下,改變其 Element;若要在 Object 的 Key 不變前提下,根據其 Key 改變 Value,Ramda 提供了 mapObjIndexed()
。
Version
VS Code 1.35.1
Quokka 1.0.227
Ramda 0.26.1
Change Value by Key
import { mapObjIndexed } from 'ramda'; let data = { 'FP in JavaScript': 100, 'RxJS in Action': 200, 'Speaking JavaScript': 300 }; // fn :: {a} -> {a} let fn = mapObjIndexed((val, key) => `Price of ${key} is ${val}`); console.dir(fn(data));
data
為 object,我們希望在 key 不變前提下,將 value 改成類似 Price of FP in JavaScript is 100
格式,其中 value 改變還牽涉到 key,此時就很適合使用 mapObjIndexed()
。
mapObjIndexed()
((*, String, Object) → *) → Object → Object
Object 版的 map()
,提供 value 與 key 給 callback 使用
(*, String, Object) -> *
:callback,其中 *
為 value, String
為 key, Object
原本的 object。
Object
:data 為 object
Object
:回傳 map 後的 object
Only Change by Value
import { mapObjIndexed } from 'ramda'; let data = { 'FP in JavaScript': 100, 'RxJS in Action': 200, 'Speaking JavaScript': 300 }; // fn :: {a} -> {a} let fn = mapObjIndexed(val => `Price is ${val}`); console.dir(fn(data));
若 value 改變不牽涉到 key,只與 value 有關,則 callback 可以不用傳入 key,只傳入 value 即可。
import { map } from 'ramda'; let data = { 'FP in JavaScript': 100, 'RxJS in Action': 200, 'Speaking JavaScript': 300 }; // fn :: {a} -> {a} let fn = map(val => `Price is ${val}`); console.dir(fn(data));
事實上若 value 改變不牽涉到 key,只與 value 有關,其實使用 map()
亦可。
Change Value by Index
import { map, addIndex } from 'ramda'; let data = { 'FP in JavaScript': 100, 'RxJS in Action': 200, 'Speaking JavaScript': 300 }; // fn :: {a} -> {a} let fn = addIndex(map)((val, idx) => `Price ${idx} is ${val}`); console.dir(fn(data));
若 value 改變不牽涉到 key,而是與 index 有關,則要用 addIndex()
與 map()
組合的新 function,其 callback 的第二個參數為 index。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- RecyclerView使用指南(一)—— 基本使用
- 如何使用Meteorjs使用URL参数
- 使用 defer 还是不使用 defer?
- 使用 Typescript 加强 Vuex 使用体验
- [译] 何时使用 Rust?何时使用 Go?
- UDP协议的正确使用场合(谨慎使用)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
密码学概论(中文版)
wade trappe、lawrence C.washington / 特拉普 / 人民邮电出版社 / 2004-6-1 / 38.00
本书全面讲解了密码学基本知识以及相关的基础数学理论,介绍了椭圆曲线、AES和量子密码体制等密码学前沿知识,详细地阐述了数字签名、数字现金等应用问题。另外,书中每章均给出了相应的习题,在附录中给出了相关Mathematica、Maple和 MATLAB实例。 本书可供高等院校就用数学、通信和计算机等专业用作密码学、通信安全和网络安全等课程的教材或参考书,也可供信息安全系统设计开发人......一起来看看 《密码学概论(中文版)》 这本书的介绍吧!
Markdown 在线编辑器
Markdown 在线编辑器
UNIX 时间戳转换
UNIX 时间戳转换