91网首页-91网页版-91网在线观看-91网站免费观看-91网站永久视频-91网站在线播放

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【JS三兄弟誰是誰】搞懂 splice、slice、split,只需一杯奶茶的時間!

freeflydom
2025年7月11日 10:47 本文熱度 72

JavaScript 有三兄弟,經常一起“切人”。
他們名字相似、功能相關,但性格迥異,常被搞混。
今天,就帶你喝著奶茶,笑著剖析,幫你徹底搞懂:
spliceslicesplit 到底是誰?干了啥?憑啥這么火?


?? 一、三兄弟登場:不同對象,不同任務

名稱作用對象是否修改原對象返回類型功能簡述
splice數組? 是被刪除元素數組原地刪除元素并可插入新元素
slice數組 / 字符串? 否副本(子集)復制選中部分,原體不動
split字符串? 否數組按分隔符拆分成字符串數組


?? 三兄弟性格畫像:

  • splice:動刀硬漢,“你讓我切,我就直接改了,還能塞新料”
  • slice:溫柔攝影師,“我只是幫你剪一塊,別擔心,我不動本體”
  • split:爆破專家,“給我個分隔符,我讓字符串四分五裂”

?? 二、splice —— 原數組的“改造師”

?? 語法:

array.splice(start, deleteCount, item1, item2, ...)

?? 參數說明

參數說明
start操作起始索引(可負數,表示從尾部開始)
deleteCount要刪除的元素數量
item1...要插入的新元素(可選)

?? 作用細節

  • 刪除 deleteCount 個元素
  • 插入 itemX 元素(可選)
  • 原地修改原數組
  • 返回被刪除的元素組成的數組

?? 示例

let arr = ['??', '??', '??', '??'];
let res = arr.splice(1, 2, '??', '??');
console.log(arr); // ['??', '??', '??', '??']
console.log(res); // ['??', '??']

?? 實現邏輯簡析(偽代碼)

function splice(arr, start, deleteCount, ...items) {
  const deleted = arr.slice(start, start + deleteCount); // 先復制要刪除部分
  const before = arr.slice(0, start);
  const after = arr.slice(start + deleteCount);
  arr.length = 0;
  arr.push(...before, ...items, ...after); // 原地重構數組
  return deleted;
}

?? 注意點

  • start 超出范圍時會被限制在數組末尾
  • deleteCount 超出實際刪除范圍不會報錯
  • 可以只刪除不插入,或只插入不刪除(deleteCount 為 0)

?? 三、slice —— 不動聲色的“復制專家”

?? 語法

array.slice(start, end)
string.slice(start, end)

半開區間 [start, end),取從 start 到 end(不含)的部分。

?? 參數說明

參數說明
start起始索引(可為負數)
end結束索引(可省略)

?? 示例

let fruits = ['??', '??', '??', '??'];
let res = fruits.slice(1, 3);
console.log(res);      // ['??', '??']
console.log(fruits);   // ['??', '??', '??', '??']  原數組未改動

?? 實現簡析

function slice(arr, start, end) {
  const result = [];
  start = normalizeIndex(start, arr.length);
  end = normalizeIndex(end ?? arr.length, arr.length);
  for (let i = start; i < end; i++) {
    result.push(arr[i]);
  }
  return result;
}

也可用于字符串,返回子串。


?? 四、split —— 字符串的“爆破能手”

?? 語法

string.split(separator, limit)

?? 參數說明

參數說明
separator分隔符(字符串或正則表達式)
limit最多返回元素個數(可選)

?? 示例

let str = "你/我/他/她";
let parts = str.split('/');
console.log(parts); // ['你', '我', '他', '她']
let limited = str.split('/', 2);
console.log(limited); // ['你', '我']

?? 使用小技巧

  • str.split('') 把字符串拆成單字數組
  • 正則表達式支持復雜拆分,如空白、標點等

?? 簡化模擬

function split(str, sep, limit) {
  let parts = str.split(sep);
  return parts.slice(0, limit ?? parts.length);
}

?? 五、終極口訣:一秒區分三兄弟

?? 記住這句:

  • Splice 改數組,一刀兩斷再塞新
  • Slice 拷貝段,半開區間不傷真
  • Split 拆字符串,按符爆破成碎銀

?? 加個數字口訣:

  • 5 分裂(split)
  • 6 切片(slice)
  • 7 動刀(splice)

?? 字母聯想:

  • sp 是“拼割”的信號,
  • 多一個 p(splice)意味著“拼接”,
  • 少一個 p(slice)意味著“切片”,
  • 結尾 lit(split)像“炸裂”。

?? 六、常見誤區與注意點

  1. slice 不改原數組,splice 會
  2. split 的參數是分隔符,不是索引
  3. splice 返回被刪元素數組,而非新數組
  4. slice 可用于字符串,splice 僅限數組

?? 七、面試加餐題

let arr = ['a', 'b', 'c', 'd'];
let res = arr.splice(1, 2).slice(0, 1).join().split('');
console.log(res);

步驟解析:

  1. arr.splice(1, 2) 刪除 'b''c',返回 ['b', 'c']
  2. .slice(0,1) 取第一項 ['b']
  3. .join() 轉成字符串 'b'
  4. .split('') 拆成數組 ['b']

? 輸出:['b']


?? 八、終章總結表

方法操作對象返回類型是否改原對象功能簡述
splice數組數組? 是刪除 / 插入 / 替換
slice數組 / 字符串子集? 否復制指定范圍
split字符串數組? 否拆成多個子字符串


?? 寫在最后

JS 三兄弟雖長得相似,但性格鮮明。
掌握他們,你就擁有了三把強力的“切割刀”:

  • 動刀重塑的 splice
  • 溫柔取片的 slice
  • 震懾爆裂的 split

下次使用時,不怕混淆,輕松辨別,寫出干凈利落的代碼!

?轉自https://juejin.cn/post/7524602914515517483


該文章在 2025/7/11 10:47:22 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国语一区二区 | 欧美一区日韩国产 | 欧美日韩不卡一区 | 精品一二三区 | 国产九九 | 91神马电 | 精品欧美一区二区视 | 精品区一区二区三 | 91成人免费观看 | 国产真实九 | 91青青草原 | 日本视频中文字幕 | 日本特黄特黄 | 日韩成人午夜 | 欧美性爱免费网站 | 国产精品12区 | 国产vr在| 91啦蝌蚪视频| 欧美性猛XXXXX | www在线资源 | 国产网站在线播放 | 国产熟睡| 国产操女 | 欧美日韩精品福利 | 91视频网址 | 午夜福利视 | 岛国在线免费观看 | 精品在线免费播放 | 日韩欧美国产高清 | 无码超乳爆乳中文字幕在线看伦 | 中文字幕片 | 国产99在线| 中文字幕亚 | 三级综合精品乱伦 | 国产日韩中文字幕 | 无码vr最新无码av专区 | 91免费视频网址 | 国产亚洲精爱浪 | 国产高清 | 91看片福利 | 日本國產在線視頻 |