javascript - javascript 可重用函数
问题描述
人,我有一个问题。我有两个做同样事情的 javascript 函数。请注意,它只会更改“让选定”变量。我认为这不是在 js 中使用函数的最佳方式,我该如何重用它们?
第一个功能:
onChange(id) {
let selected = this.state.selectedDevice
let find = selected.indexOf(id)
if(find > -1) {
selected.splice(find, 1)
} else {
selected.push(id)
}
this.setState({ selected })
}
第二个功能:
onChangeSec(id) {
let selected = this.state.selectedSection
let find = selected.indexOf(id)
if(find > -1) {
selected.splice(find, 1)
} else {
selected.push(id)
}
this.setState({ selected })
}
谢谢 !!!
解决方案
您可以将密钥作为另一个函数参数传递
onChange(id, key) {
let selected = this.state[key]
let find = selected.indexOf(id)
if(find > -1) {
selected.splice(find, 1)
} else {
selected.push(id)
}
this.setState({ selected })
}
在您的情况下,键将是“selectedDevice”或“selectedSection”作为字符串传递。
推荐阅读
- function - 如何将字符串中定义的函数传递给 Flutter 中的 Widget 事件
- google-sheets - Google 表格错误:参数(字符串)与 SpreadsheetApp.Sheet.getActiveCell 的方法签名不匹配
- node.js - 如何重构 Mocha BDD 测试?
- javascript - 通过逻辑 OR 运算符的空值合并字符串和条件字符串导致数字
- rxjs - 如何使用 next 限制添加到 BehaviourSubject 流中的值流?
- ubuntu-18.04 - 桌面启动器不启动我的应用程序,而终端启动
- haskell - Haskell:从元组中为每个列表调用一个函数
- elasticsearch - 如何在弹性搜索中使用日期过滤器
- python - 如何在 PyQt5 中使用全局键盘快捷键显示 QMenu?
- ssh - 无法通过 SSH 连接到 Ansible