水镜绘纱 发表于 2025-2-9 13:49:10

Javascript 教学2 - 写源的小技巧 - slice

Javascript 教学2 - 写源的小技巧 - slice (小猫咪教学2)

上一次的教学我们已经学会了split 和怎样用`和${代码}拼链接,这一次的教学会怎么去用slice,再来拼新的链接

现在我们拿另外一个例子来做示范

搜索出来的章节地址是
https://www.xiaoshuo.com.tw/577845/

然后,这个搜索结果是没有封面的数据,但其实在在书籍简介是有封面的.你可以开来看看图片的URL是什么

图片URL
https://www.xiaoshuo.com.tw/files/article/image/577/577845/577845s.jpg

在这两个URL,各位看到了什么?
577 , 577845 和 577845s.jpg

在这里我们发现到这三个数字是有关联的 .我们也可以推断577是从577845变出来的

************
Slice (切片)
-----------
Slice的意思就是把一样东西给切片,就好像一粒苹果切片那样.

同样的,跟第一期的教学一样,我们可以用split 来取出577845出来,然后我们可以用slice 来把这577845来切片(拆开)

      5   7   7   8    4    5
      0   1   2   3    4    5   ( 顺序)
       -6   -5-4   -3   -2   -1   (逆序)

可以看到我列出来的号码么? 我们slice 是要这么看数字

我们就拿577845来名为id,
Slice的写法是
let id = '577845';
let bid = id.slice (0,3)
Console.log (bid)

log 出来的答案就会是577. 为什么是577呢?
有看到我写(0,3)吗? 这个就是扮演很重要的角色.

在这里0就代表你要从那个开始显示,刚才我列出来的,我们是要5开始显示,所以就写0
3就是你要从那个开始不要显示,我们只要577,然后8是排第三个,所以你可以写3那577后面的数字就不会显示.

我们slice了以后,就像上一次一样要把全部合拼成一个新的链接

---------
我们再次看回去我们弄的图片URL

https://www.xiaoshuo.com.tw/files/article/image/577/577845/577845s.jpg

我们就开始可以用Js来合并成这个URL

@js:
let id = result.split('/')
let bid = id.slice(0, 3);
result = `https://www.xiaoshuo.com.tw/files/article/image/${bid}/${id}/${id}s.jpg`

如果测了以后显示你要的URL,恭喜你你已经上完了拼链接的教学.

在此特别感谢Flzg佬,我的JS的技巧是他用心指导我的.希望各位看了这两篇文章后,可以自己写出拼链接的js.

Rosia P'ng(来自马来西亚的小猫咪)上

putpotato 发表于 2025-2-9 13:54:36

请问我想把123和1234
变成六个数字的000123和001234
该怎么操作呢?

晚安丶星期五 发表于 2025-2-9 14:14:40

感谢分享

fmnsppo 发表于 2025-2-9 14:16:30

putpotato 发表于 2025-2-9 13:54
请问我想把123和1234
变成六个数字的000123和001234
该怎么操作呢?

id = "000000" + 1234
id.slice(-6)

水镜绘纱 发表于 2025-2-9 14:35:57

putpotato 发表于 2025-2-9 13:54
请问我想把123和1234
变成六个数字的000123和001234
该怎么操作呢?

let num = 1234;
let paddedNum = num.toString().padStart(6, '0');

6是代表你要几个数字,'0'是前面的空他自动补上0, 你可以用Js app来测试一下

唯有一书 发表于 2025-2-9 21:32:12

感谢分享

putpotato 发表于 2025-2-9 23:20:36

fmnsppo 发表于 2025-2-9 14:16
id = "000000" + 1234
id.slice(-6)

谢谢

putpotato 发表于 2025-2-9 23:20:43

yuri1291 发表于 2025-2-9 14:35
let num = 1234;
let paddedNum = num.toString().padStart(6, '0');



谢谢

等等 发表于 2025-2-10 13:59:17

所以简单来说slice的括号(0,3)实际上是序列区间[0,3)的意思

plmoknib 发表于 2025-2-17 17:00:43

可以的
页: [1] 2
查看完整版本: Javascript 教学2 - 写源的小技巧 - slice