javascript - 将参数传递给另一个函数并返回更改的值不起作用
问题描述
有人可以解释为什么这个函数返回它的原始参数值而不是改变的值。
编辑:仅供参考,我已经知道问题的解决方案我只是不明白“幕后”发生了什么;是什么导致这不起作用。我想更好地理解语言
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'
解决方案
需要重新赋值,函数不会改变原来的值,需要重新赋值。您还可以使用点运算符来组合所有操作并缩短代码,如下所示
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'))
推荐阅读
- sql - 作为 JSON 数据的 SQL 连接表
- linux - 无法在“.vscode”文件夹({0})中创建“launch.json”文件
- webpack - 这两个 output.path webpack 配置有什么区别?
- java - 获得所需的结果集值,该值可能需要数小时才能显示在表格中
- javascript - 是否可以将元素的 textContent 分配为 JS 中的 HTML 代码?
- html - 在段落中完美对齐引导标记
- postgresql - Kubernetes minikube 中的 postgres 数据保留
- c# - Html.ValidationSummary 未填充自定义错误 ASP.NET MVC Razor 页面
- python - TSP 算法:初始化种群
- c - 关于 sizeof() 和分配的内存