首页 > 解决方案 > 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 })
        }

谢谢 !!!

标签: javascriptreactjsjsx

解决方案


您可以将密钥作为另一个函数参数传递

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”作为字符串传递。


推荐阅读