有如下数组1,需求是将该数组的前N项数据复制一份并插入到数组的最前面,比如前5个对象,需要的结果见数组2。

数组1:

  depFinishArr: [
    {
      "key": 0,
      "value": "产品1"
    },
    {
      "key": 0,
      "value": "总部2"
    },
    {
      "key": 0,
      "value": "研究部3"
    },
    {
      "key": 0,
      "value": "管理4"
    },
    {
      "key": 0,
      "value": "收益部5"
    },
    {
      "key": 0,
      "value": "交易部6"
    },
    {
      "key": 0,
      "value": "业务总部7"
    },
    {
      "key": 0,
      "value": "投资部8"
    },
    {
      "key": 0,
      "value": "收益部9"
    },
    {
      "key": 0,
      "value": "投资部10"
    },
    {
      "key": 0,
      "value": "投资部11"
    },
    {
      "key": 0,
      "value": "投资部12"
    },
    {
      "key": 0,
      "value": "投资部13"
    }
  ],

数组2:

 depFinishArr: [
    {
      "key": 0,
      "value": "产品1"
    },
    {
      "key": 0,
      "value": "总部2"
    },
    {
      "key": 0,
      "value": "研究部3"
    },
    {
      "key": 0,
      "value": "管理4"
    },
    {
      "key": 0,
      "value": "收益部5"
    },
    {
      "key": 0,
      "value": "产品1"
    },
    {
      "key": 0,
      "value": "总部2"
    },
    {
      "key": 0,
      "value": "研究部3"
    },
    {
      "key": 0,
      "value": "管理4"
    },
    {
      "key": 0,
      "value": "收益部5"
    },
    {
      "key": 0,
      "value": "交易部6"
    },
    {
      "key": 0,
      "value": "业务总部7"
    },
    {
      "key": 0,
      "value": "投资部8"
    },
    {
      "key": 0,
      "value": "收益部9"
    },
    {
      "key": 0,
      "value": "投资部10"
    },
    {
      "key": 0,
      "value": "投资部11"
    },
    {
      "key": 0,
      "value": "投资部12"
    },
    {
      "key": 0,
      "value": "投资部13"
    }
  ],

解决代码如下:

depFinishArr = [...JSON.parse(JSON.stringify(depFinishArr.slice(0, 5))), ...depFinishArr]

代码说明:

通过:slice() 函数找出前 n 项,然后使用 JSON.parse(JSON.stringify()) 或者 lodash 的 cloneDeep 深拷贝一份,避免引用错乱即可。