javascript | 一道题熟悉splice()/slice()/split()方法

小白刚开始学javascript的时候,对splice()/slice()/split()总是混淆
借助这样一道题为例搞懂这三种方法

给你一个 打乱顺序 的句子 s ,它包含的单词不超过 9 个,请你重新构造并得到原本顺序的句子。
比方说,句子 “This is a sentence” 可以被打乱顺序得到 “sentence4 a3 is2 This1” 或者 “is2 sentence4 This1 a3” 。
输入:s = “is2 sentence4 This1 a3”
输出:“This is a sentence”
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sorting-the-sentence

arrayObject.splice(index,howmany,item1,.....,itemX)

  • index必需 表示将要添加/删除元素的位置
  • howmany必需 表示删除多少个元素,0表示不删除元素
  • item1,…,itemX可选 表示添加的元素

返回被删除的部分组成的数组(没有就返回空数组),改变原数组

arrayObject.slice(start,end)

  • start 必需 表示开始截取的位置
  • end 可选,表示截取结束的位置(不包括arr[end]这个元素)
    两个参数的负数都表示从后往前,-1表示最后一个,-2表示倒数第二个
    返回截取部分的数组,不改变原数组

stringObject.split(separator,howmany)

  • separator 必需 分割的边界处 如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。
    这里用空格表示按空格分割为数组
  • howmany 可选。指定返回的数组的最大长度。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
    返回一个数组
/**
 * @param {string} s
 * @return {string}
 */
var sortSentence = function (s) {
    let arr = s.split(' ');
    let res = new Array(arr.length);
    for (let i = 0; i < arr.length; i++) {
        // splice(index,1,要插入的元素)
            // 注意 第二个参数不能是0,0表示多插入一个元素!! 1表示“替换该位置的元素”
        // arr[i][arr[i].length - 1]*1 表示元素最后的数字作为索引
        // arr[i].split('').slice(0,-1).join('')+' '
            // 表示单个元素转换为数组之后截取除了最后一位数字的部分再转换为字符串
            // 并在每个单词之后加上空格存入res
        res.splice(arr[i][arr[i].length - 1]-1, 1, arr[i].split('').slice(0, -1).join('') + ' ')
    }
    // trim()方法去除字符串首尾的空格
    return res.join('').trim()
};
JavaScript中,`split`、`slice`和`splice`是用于处理字符串和数组的常用方法。它们的功能和用法有所不同,以下是它们的区别: 1. **`split`** - **用途**:用于将字符串分割成数组。 - **语法**:`string.split(separator, limit)` - **参数**: - `separator`:指定分割的位置,可以是字符串或正则表达式。 - `limit`:可选参数,限制分割次数。 - **返回值**:一个数组,包含分割后的子字符串。 - **示例**: ```javascript let str = "Hello, World!"; let arr = str.split(", "); console.log(arr); // ["Hello", "World!"] ``` 2. **`slice`** - **用途**:用于提取字符串或数组的一部分,并返回一个新的字符串或数组。 - **语法**:`array.slice(start, end)` 或 `string.slice(start, end)` - **参数**: - `start`:开始索引(包含)。 - `end`:结束索引(不包含)。可选参数,省略时提取到字符串或数组的末尾。 - **返回值**:一个新的字符串或数组,包含提取的部分。 - **示例**: ```javascript let arr = [1, 2, 3, 4, 5]; let newArr = arr.slice(1, 4); console.log(newArr); // [2, 3, 4] let str = "Hello, World!"; let newStr = str.slice(7, 12); console.log(newStr); // "World" ``` 3. **`splice`** - **用途**:用于添加或删除数组中的元素。 - **语法**:`array.splice(start, deleteCount, item1, item2, ...)` - **参数**: - `start`:开始索引。 - `deleteCount`:要删除的元素数量。 - `item1, item2, ...`:要添加的新元素。 - **返回值**:一个包含被删除元素的新数组。 - **示例**: ```javascript let arr = [1, 2, 3, 4, 5]; let removed = arr.splice(2, 2, "a", "b"); console.log(arr); // [1, 2, "a", "b", 5] console.log(removed); // [3, 4] ``` 总结: - `split`用于字符串分割,返回数组。 - `slice`用于提取字符串或数组的一部分,返回新的字符串或数组。 - `splice`用于添加或删除数组元素,返回被删除的元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值