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()
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值