一日回家

女儿,爸爸数值允许请告诉我如何转换为"

怀:“什么事?”
怀:突然发生什么事了?

女儿
女儿:“我小学就做过这种作业!”

家庭作业

实现一个函数,将数字0 转换为7 为权限字符串。

* 按照以下规则转换

0 -> "---"
1 -> "--x"
2 -> "-w-"
3 -> "-wx"
4 -> "r--"
5 -> "r-x"
6 -> "rw-"
7 -> "rwx"

围“哦”
围 “我女儿已经上小学一年级了。”
Wai ``我不认为我有这种作业''

女儿

Wai:“我很确定这是允许的……权威你的意思是? ”

女儿是的

围“好像很难”
外:“那么,你走了多远?”

女儿

我女儿发现了什么

女儿:“我在谷歌上搜索了权限。”
女儿:“显然——”

  • 4 代表読み取り(read -> r)
  • 2 代表書き込み(write -> w)
  • 1 代表実行(execute -> x)

女儿: ↑ 好像这是规矩
女儿:所以,对于5,它变成了"r-x"

怀:“嗯……?”
Wai "5 来自4 + 1"
Wai "因为我有readexecute的权限"
Wai "如果你把它转换成一个权限字符串,它将是"r-x""

女儿

Wai "Hona,在32 + 1 和来自的情况下"
Wai "因为我有writeexecute的权限"
Wai “所以你要成为"-wx"?”

女儿:“有点像”

怀:哦,如果你知道这么多,爸爸也能做到。
Wai “我会用爸爸擅长的 JavaScript 来实现它!”

女儿:“哇!”

wai,开始执行

Wai:首先,尝试编写将3转换为"-wx"的过程!

女儿:“是啊!”

围 “首先——”

  const permissionNumber = 3

  const permissionText =
      permissionNumber
          .toString(2) // -> "11"

围“↑这边”

女儿:“好!”
女儿:做.toString(2)
女儿“3二进制字符串我把它转换成"

围“塞雅”

女儿:“爸爸,太棒了!”

围“咕咕咕”
怀:“来吧~?”
Wai “(但我不知道之后该怎么办......)”

女儿:“剩下的很简单!”

! ?"
卫“(说真的!?)”
怀“哦,哦!”
Wai:“嗬,小荷娜,剩下的你自己做吧~”

女儿:“是啊!”

女儿实施开始

女儿:“首先——”

  const permissionNumber = 3

  const permissionText =
      permissionNumber
          .toString(2) // -> "11"
+         .padStart(3, "0") // -> "011"

女儿:“↑就是这个!”

伟“我明白了”
Wai "把它变成三位数零填充你是否?”
Wai "通过使用字符串具有的padStart() 方法"
Wai ``您可以用零填充,直到达到指定的位数。''

女儿:“嗯?”

怀:不,你知道吗?

女儿
女儿:“然后这个!”

  const permissionNumber = 3

  const permissionText =
      permissionNumber
          .toString(2) // -> "11"
          .padStart(3, "0") // -> "011"
+         .split("") // -> ["0", "1", "1"]
+         .map(Number) // -> [0, 1, 1]

围“嗬~”
Wai "使用split()的字符串方法拆分"011""
Wai "数组为["0", "1", "1"]"
Wai:然后,使用数组的map()方法,将所有元素都转换为数值……

女儿:“是的。”

魏:那么,这之后你打算怎么做?

女儿:“哦,你不知道?”

外:“不,你明白,不是吗?”
Wai:“我想让我女儿去做。”

女儿:“好!”
女儿:“嗯,——”

  const permissionNumber = 3

  const permissionText =
      permissionNumber
          .toString(2) // -> "11"
          .padStart(3, "0") // -> "011"
          .split("") // -> ["0", "1", "1"]
          .map(Number) // -> [0, 1, 1]
+         .map((e, i) => e ? "rwx"[i] : "-") // -> ["-", "w", "x"]

女儿:“↑就是这样!”

伟“我明白了”
卫:“诶,这是……?”

  • 如果1,则返回"r""w""x"
  • 如果0,返回"-"

围 “↑这个函数不是作用在数组的每个元素上的吗?”
Wai "当[0, 1, 1] 变成["-", "w", "x"]"

女儿:“是!”
女儿:“一旦你做到了这一步,剩下的就是——”

  const permissionNumber = 3

  const permissionText =
      permissionNumber
          .toString(2) // -> "11"
          .padStart(3, "0") // -> "011"
          .split("") // -> ["0", "1", "1"]
          .map(Number) // -> [0, 1, 1]
          .map((e, i) => e ? "rwx"[i] : "-") // -> ["-", "w", "x"]
+         .join("") // -> "-wx"

女儿“↑就这样做!”

Wai “哦,我用join()的方法把数组拼接成一个字符串。”

女儿:“但我从这里不知道。”

怀“诶……”
Wai “剩下要做的就是把它变成一个函数。”

女儿:“我不知道怎么定义函数……”

Wai:“不,相反!?”

让它成为一个函数

Wai "Honah,把刚才的进程变成一个函数,命名为permissionNumberToText"

const permissionNumberToText = (permissionNumber) =>
    permissionNumber
        .toString(2)
        .padStart(3, "0")
        .split("")
        .map(Number)
        .map((e, i) => e ? "rwx"[i] : "-")
        .join("")

围“↑这边”

试试看

Wai “Honah,你为什么不试试呢?”

console.log(permissionNumberToText(0))
// -> "---"

console.log(permissionNumberToText(1))
// -> "--x"

console.log(permissionNumberToText(2))
// -> "-w-"

console.log(permissionNumberToText(3))
// -> "-wx"

console.log(permissionNumberToText(4))
// -> "r--"

console.log(permissionNumberToText(5))
// -> "r-x"

console.log(permissionNumberToText(6))
// -> "rw-"

console.log(permissionNumberToText(7))
// -> "rwx"

女儿:“哇,你可以的!”
女儿:“爸爸,太棒了!”

怀:“让我们做吧!?”
哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇

Yometaro:不,我只是把它变成了你的功能!

Wai:“对不起,我走神了……”

概括

  • 如果将十进制数转换为二进制数并用零填充,则格式为"011"
  • "011" 可以认为是
    • 第一个字符是"0"
      • 4(读取)标志是离开它已成为
    • 第二个字符是"1"
      • 2(写)标志声音它已成为
    • 第三个字符是"1"
      • 1(执行)标志是声音它已成为
  • 然后
    • 声音转换为"r""w""x"
    • 离开转换为"-"
    • ↑ 通过这样做,您可以将其转换为权限字符串

一天中的夜晚

Wai “啊,明天也要上班~”
卫“好忧郁啊~”

女儿:“爸爸,你不喜欢你的工作吗?”

Wai:“不,挺好玩的。”
Wai“爸爸,我不擅长阅读气氛”
Wai “我总是在与同事的谈话中迷失方向。”
Wai:“我不喜欢那样的自己……”

女儿:“我明白了……”
女儿:“但是你知道,爸爸。”
女儿“比人更看不懂气氛”
女儿:“你比别人更脆弱。”
女儿:“我比别人更害怕。”
女儿:“爸爸有这样的性格,努力奋斗”
女儿:“很好”

外:“呜……谢谢你,女儿……!”

女儿:“不要因为脑部扭蛋失败就放弃……?”

Wai:“不,谁赢了大脑扭蛋?”
围“Shibakuzo”

〜结束〜


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308626136.html

相关文章:

  • 2021-10-12
  • 2021-11-18
  • 2021-09-26
  • 2021-06-27
  • 2021-12-01
  • 2021-11-21
  • 2021-04-29
猜你喜欢
  • 2021-12-28
  • 2021-08-18
  • 2022-01-13
  • 2022-12-23
  • 2022-12-23
  • 2022-01-03
  • 2021-05-15
相关资源
相似解决方案