通过在js / react函数中传递参数传递目标数组

时间:2019-11-25 14:52:47

标签: javascript reactjs

我有一个对象来收集要发送到API的数据:

apiData: {
    colors: [],
    years: [],
    // ..
}

apiData的许多子级都是像colorsyears这样的数组,我称这些为“子组”。用户可以通过触发以下复选框的复选框来选择多个子组:

handleCheckboxColorChange(value, isChecked) {
    let newApiData = '';
    this.setState( (prevState) => {
        if (isChecked === true) {
            newApiData = {...prevState.apiData, colors: [...prevState.apiData.colors, value]}
        } else {
            newApiData = {...prevState.apiData, colors: [...prevState.apiData.colors.filter(item => item !== value)]
            }
        }
        return {apiData: newApiData}
    }, () => this.props.handleApiCall(this.state.apiData))
}

我对其他“子组”使用类似的功能。对于years,函数中所有更改都是从colorsyears。因此,我希望创建一个更通用的函数,该函数可以将“子组”作为参数来定位对象中的正确数组。我试图像这样传递第三个变量(字符串)subGroup

handleCheckboxChange(value, isChecked, subGroup) {
     // ..
     newApiData = {...prevState.apiData, subGroup: [...prevState.apiData.subGroup, value]}

这不起作用(我想是因为它现在正在我的对象中寻找子“子组”)。我该如何进行这项工作?

2 个答案:

答案 0 :(得分:3)

使用bracket notation

handleCheckboxChange(value, isChecked, subGroup) {
  // ..
  newApiData = {...prevState.apiData, [subGroup]: [...prevState.apiData[subGroup], value]}

答案 1 :(得分:1)

要使其更漂亮,可以使用以下方法:

for i in range(len(col1) - 1):
    a = pd.to_datetime(col1[i]).dayofyear
    b = pd.to_datetime(col1[i+1]).dayofyear
    if (a-b)>=0:
        #whatever you want to calculate