题解 | #头部插入元素#
头部插入元素
https://www.nowcoder.com/practice/6702abe9efcd482aac433f60896d9e1a
1、for循环
function _unshift(array, value) { for (let i = array.length- 1; i >= 0; i--) { array[i+1] = array[i]; } array[0] = value; }
2、扩展运算符
function _unshift(array,value) { return [value, ...array]; }
实际上这样就行,但是由于这个地方只支持es5语法所以得重新遍历一遍就如下代码
function _unshift(array,value) { let temp = [value, ...array]; // 用临时数组保存结果 array.length = 0; // 将数组置空,不能使用 array = [] // 将结果放回原数组 temp.forEach(item=>{ array.push(item) }) return array }
3、unshift方法没啥说的
返回值
把指定的值添加到数组的开头之后的新长度。
说明
unshift() 方法将把它的参数插入 arrayObject 的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。
请注意:unshift() 方法不创建新的创建,而是直接修改原有的数组。
function _unshift(array,value) { return array.unshift(value);; }
4、splice方法
splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:该方法会改变原始数组。
参数:
index —— 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany —— 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, …, itemX —— 可选。向数组添加的新项目。
返回值
Array —— 包含被删除项目的新数组,如果有的话。
function _unshift(array,value) { return array.splice(0,0,value); }