如何將 String 前後顛倒 ?

栏目: JavaScript · 发布时间: 6年前

内容简介:將 String 前後顛倒在實務上可能不太常見,不過用來練功倒是不錯。VS Code 1.33.1Quokka 1.0.209

將 String 前後顛倒在實務上可能不太常見,不過用來練功倒是不錯。

Version

VS Code 1.33.1

Quokka 1.0.209

Ramda 0.26.1

ECMAScript

import { reverse } from 'ramda';

let data = 'sam';

let revStr = arg => arg.split('').reverse().join('');
console.log(revStr(data));

String 沒有 reverse() ,但 array 有:

split()
reverse()
join()

如何將 String 前後顛倒 ?

Ramda

import { split, reverse, join, pipe } from 'ramda';

let data = 'sam';

let revStr = pipe(
  split(''),
  reverse,
  join('')
);
console.log(revStr(data));

想法有了,且 Ramda 也提供了 split()reverse()join() 的 function 版本,因此已可以改用 Ramda 實現 point-free。

如何將 String 前後顛倒 ?

reverse()

import { reverse } from 'ramda';

let data = 'sam';
console.log(reverse(data));

事實上 Ramda 的 reverse() ,除了用於 array 外,也可以用在 string。

reverse()

[a] -> [a]
String -> String

將 array 或 string 顛倒

如何將 String 前後顛倒 ?

Q:為什麼 reverse() 這麼神,可同時處理 array 或 string ?

reverse() source code 發現,其實一點也不神。

var reverse = _curry1(function reverse(list) {
  return _isString(list)
    ? list.split('').reverse().join('')
    : Array.prototype.slice.call(list, 0).reverse();
});

Ramda 先判斷是否為 string,若是 string 一樣走 spilt()reverse()join() 流程;若是 array,則先 slice() 一份新的 array,再 reverse() 之,因為內建的 reverse() 是直接改變原有 array,屬 side effect 寫法。

Ramda 的 reverse() 雖然同時支援 array 與 string,實則經過 _isString() 判斷而分別處理

Conclusion

  • split()join() 是常見的組合, split() 將 string 轉成 array 後,可借用 array 豐富的 function 處理,最後再使用 join() 還原成 string,可視為 pattern 使用
  • 別忘了 Ramda 的 reverse() 除了支援 array 外,也支援 string

Reference

Samantha Ming , How to Reverse a String in JavaScript ?

Ramda , reverse()

Ramda , split()

Ramda , join()


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

SSA:用户搜索心理与行为分析

SSA:用户搜索心理与行为分析

[美] 罗森菲尔德(Louis Rosenfeld) / 汤海、蔡复青 / 清华大学出版社 / 2014-4-1 / 59.00

何为站内搜索分析(SSA)?它如何帮助你挖掘用户搜索曰志,从中洞悉用户搜索心理和行为,从而有针对性地改善用户体验,提升网站价值?这些都可以从《SSA:用户搜索心理与行为分析》中找到答案。《SSA:用户搜索心理与行为分析》首先通过故事来说明SSA是如何使Vanguard集团起死回生的,简要介绍SSA并指导读者动手实践。其次,通过丰富的实例来介绍很多工具和方法,帮助读者着手分析用户查询数据,从中获得更......一起来看看 《SSA:用户搜索心理与行为分析》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具