有如下数组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 深拷贝一份,避免引用错乱即可。