使用对象解构语法设置先前初始化变量的值

Setting the values of previously initialized variables using object destructuring syntax

我的情况是我有许多要设置的变量 - 但是,它们的值取决于另一个变量。所以这就是我的意思

var {
      columns,
      rows,
      tableColumnExtensions,
      sorting,
      editingRowIds,
      addedRows,
      rowChanges,
      currentPage,
      deletingRows,
      pageSize,
      pageSizes,
      columnOrder,
    } = this.props.apiurlsTable

    if (this.props.tableType==="dependencies") {
      var {
        columns,
        rows,
        tableColumnExtensions,
        sorting,
        editingRowIds,
        addedRows,
        rowChanges,
        currentPage,
        deletingRows,
        pageSize,
        pageSizes,
        columnOrder,
      } = this.props.dependenciesTable
    }

我使用稍后声明的变量,因此始终在条件语句中声明它们并不好,因为它们对函数的剩余范围不可见。上面的代码确实有效,但给出了 'variable is already defined, no-redeclare' 警告。我喜欢使用对象解构语法,并且不想将每个变量分开到它自己的行(如列 = this.props.dependenciesTable.column)我想知道是否有一种方法可以在 JavaScript 中有条件地设置变量?

或者是否有其他可行的方法...

这样做:

var objectToDestructureFrom =
    this.props.tableType === "dependencies" ? this.props.dependenciesTable : this.props.apiurlsTable;

var {
    columns,
    rows,
    tableColumnExtensions,
    sorting,
    editingRowIds,
    addedRows,
    rowChanges,
    currentPage,
    deletingRows,
    pageSize,
    pageSizes,
    columnOrder,
} = objectToDestructureFrom