使用 mapObjIndexed() 改變 Object 的 Value
栏目: JavaScript · 发布时间: 7年前
内容简介:在 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。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Unix/Linux编程实践教程
Bruce Molay、杨宗源、黄海涛 / 杨宗源、黄海涛 / 清华大学出版社 / 2004-10-1 / 56.00元
操作系统是计算机最重要的系统软件。Unix操作系统历经了几十年,至今仍是主流的操作系统。本书通过解释Unix的工作原理,循序渐进地讲解实现Unix中系统命令的方法,让读者理解并逐步精通Unix系统编程,进而具有编制Unix应用程序的能力。书中采用启发式、举一反三、图示讲解等多种方法讲授,语言生动、结构合理、易于理解。每一章后均附有大量的习题和编程练习,以供参考。 本书适合作为高等院校计算机及......一起来看看 《Unix/Linux编程实践教程》 这本书的介绍吧!