I have this kind of array of object:
[
  {variable: "contactPhone", title: "Phone", type: "text"},
  {variable: "contactName", title: "Name", type: "text"}
]
Each time on click I'm dynamically adding new objects in array. It is actually a clone one of the objects depending on which one user clicked. So I need to sort them like this, contactPhone to be always on top, contactName on the bottom:
[
  {variable: "contactPhone", title: "Phone", type: "text"},
  {variable: "contactPhone", title: "Phone", type: "text"},
  {variable: "contactPhone", title: "Phone", type: "text"},
  {variable: "contactName", title: "Name", type: "text"},
  {variable: "contactName", title: "Name", type: "text"},
]
here what I'm trying to do, but it doesnt work. Any ideas ?
addNewInput(i) {
    const { data, index } = this.state
    let cloned = { ...data[index].variables[i] }
    const newData = this.state.data
    newData[index].variables.push(cloned)
    data[index].variables.sort((a, b) => (a.variable === b.variable ? 1 : -1))
    this.setState({
      data: newData,
    })
  }
