(array, idx, val, canEdit)
| 835 | } |
| 836 | |
| 837 | function spliceIn(array, idx, val, canEdit) { |
| 838 | const newLen = array.length + 1; |
| 839 | if (canEdit && idx + 1 === newLen) { |
| 840 | array[idx] = val; |
| 841 | return array; |
| 842 | } |
| 843 | const newArray = new Array(newLen); |
| 844 | let after = 0; |
| 845 | for (let ii = 0; ii < newLen; ii++) { |
| 846 | if (ii === idx) { |
| 847 | newArray[ii] = val; |
| 848 | after = -1; |
| 849 | } else { |
| 850 | newArray[ii] = array[ii + after]; |
| 851 | } |
| 852 | } |
| 853 | return newArray; |
| 854 | } |
| 855 | |
| 856 | function spliceOut(array, idx, canEdit) { |
| 857 | const newLen = array.length - 1; |