如何在函数末尾使用切片

3

一个简单的问题。我正在学习Javascript,但是我不明白为什么 slice() 对我的响应 let 没有任何影响。

accum() 是一个接受字符串的函数。

 
     function accum(s) {
  let response = '';
   for (i=0; i < s.length; i++) {
    response += (s.charAt(i).toUpperCase()) + (s.charAt(i).toLowerCase()).repeat(i)  + '-'
   }
 
  return response.slice(0, response.length-1)
  }

console.log(accum("abCdEf"))

该函数仍然返回response,就好像我没有对其进行切片一样。

1
你期望从那个函数中得到什么结果?能否更清楚一些?我已经编辑了你的问题,使用console.log调用函数并输出结果,看起来它正在执行它应该做的事情。请你能否更具体地说明输出内容? - DaniP
我已更新了console.log,以便您可以更好地了解函数的目的。slice()是为了去掉响应末尾的最后一个“-”。也许这可以以更好的方式重构。 - Philx94
1个回答

2
slice()不会改变原始字符串(或数组) - 它返回一个新的字符串(或数组),其中包含被切片的旧字符串或数组的部分。
如果你想返回被切片的部分,使用 return response.slice(1)。这将返回response字符串,去掉它的第一个字符。
"最初的回答"

如果您返回切片部分,它不会返回相同的结果。例如,使用abc调用accum会得到A-Bb-Ccc-而没有.slice,并且使用.slice会得到-Bb-Ccc- - CertainPerformance

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接