js 实现一个数组对应位置插入另一个数组
文章目录
前言
网上看了很多改写splice的方法,可能我自己是ts环境会有一些提示错误,所以就自己重新换了个思路实现这个
提示:以下是本篇文章正文内容,下面案例可供参考
一、网上的教程
var arr1 = ['a', 'b', 'c'];
var arr2 = ['1', '2', '3'];
var index = 2;
arr2.unshif(index, 0);
Array.prototype.splice.apply(arr1, arr2);
console.log(arr1);
网上一大堆类似这种的,但是我用这个unshif会有ts报错,所以我就只能重新自己写一个方法了。
二、实现思路
1.将两个数组分成三个数组
这样的话就可以避免循环使用splice进行填数据了
2.将需要再指定位置插入另一个数组的数据进行拆分
这里我们使用到slice
slice的具体用法我就不过多解释了,大家不懂的可以百度一下。slice它会返回一个根据开始,可选的结束索引返回一个新数组。
const arr1 = ['a', 'b', 'c'];
const index = 1
// 这里加1是因为slice结束索引不包含
const sliceArr = arr1.slice(0, index + 1)
console.log(sliceArr) // ['a', 'b']
// 如果不加1
const sliceArr1 = arr1.slice(0, index)
console.log(sliceArr) // ['a']
2-1.拆解的另一份数组数据
const arr1 = ['a', 'b', 'c'];
const index = 1
const sliceArr2 = arr1.slice(index + 1)
console.log(sliceArr) // ['c']
2-2.拼接数组 - concat
const arr1 = ['a', 'b', 'c'];
const arr2 = [1, 2, 3]
const index = 1
const newData = arr1
.slice(0, index + 1)
.concat(arr2, arr1.slice(index + 1))
console.log(newData) // ['a', 'b', 1, 2, 3, 'c']
这样我们就得到了拼接后的数据
如果小伙伴的环境还是js的,还是能用开头改写splice的方法,我将两个数组拆分为三个,就是想着兼容ts语法报错问题。循环使用splice也是一样能实现的,希望能给小伙伴们一些思路。