首页 > 解决方案 > 将参数传递给另一个函数并返回更改的值不起作用

问题描述

有人可以解释为什么这个函数返回它的原始参数值而不是改变的值。

编辑:仅供参考,我已经知道问题的解决方案我只是不明白“幕后”发生了什么;是什么导致这不起作用。我想更好地理解语言

function helper(value){
  let hold = value;
    hold.replace(/[^\w]/g, '')
    hold.split('')
    hold.sort()
    hold.join('')
    hold.toLowerCase()

    return hold
}

console.log(helper('hello world')) <--- returns 'hello world'

标签: javascript

解决方案


需要重新赋值,函数不会改变原来的值,需要重新赋值。您还可以使用运算符来组合所有操作并缩短代码,如下所示

function helper(value){
    return value.replace(/[^\w]/g, '').split('').sort().join('').toLowerCase();
}

console.log(helper('hello world')) 

或者,您可以像这样更正您的代码

function helper(value){
  let hold = value;
  hold = hold.replace(/[^\w]/g, ''); // re-assign
  hold = hold.split(''); // re-assign
  hold.sort(); // sort updates hold - re-assignment not required
  hold = hold.join(''); // re-assign
  hold = hold.toLowerCase(); // re-assign
  return hold;
}

console.log(helper('hello world'))


推荐阅读