使用 mapObjIndexed() 改變 Object 的 Value
栏目: JavaScript · 发布时间: 6年前
内容简介:在 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协议的正确使用场合(谨慎使用)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Music Recommendation and Discovery
Òscar Celma / Springer / 2010-9-7 / USD 49.95
With so much more music available these days, traditional ways of finding music have diminished. Today radio shows are often programmed by large corporations that create playlists drawn from a limited......一起来看看 《Music Recommendation and Discovery》 这本书的介绍吧!