一日回家
女儿,爸爸数值的允许请告诉我如何转换为"
怀:“什么事?”
怀:突然发生什么事了?
女儿
女儿:“我小学就做过这种作业!”
家庭作业
实现一个函数,将数字
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 "因为我有read和execute的权限"
Wai "如果你把它转换成一个权限字符串,它将是"r-x""女儿
Wai "Hona,在
3、2 + 1和来自的情况下"
Wai "因为我有write和execute的权限"
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