数组中插入另外一个数组——(纯函数方式实现)

mac2026-04-19  7

js中自带的api——splice虽然可以实现插入,但是结果会影响到原有的数组,在 react 的reducer中就不能直接对state中的数组这么操作(保证纯函数的原则)。

因此可以借助 concat 和 slice 的 api 实现不影响原有数组内容的插入操作。

Array.prototype.insertArray = function (index, insertArr) { var a = [...this]; if(index > a.length) { a = a.concat(new Array(index-this.length)); } return a.slice( 0, index ).concat( insertArr ).concat( this.slice( index ) ); } var a1 = [1,2,3,4,5]; var a2 = [100,100]; var result = a1.insertArray( 33, a2 ); console.log("result", result)

 运行结果

最新回复(0)