题解 | #头部插入元素#

头部插入元素

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);
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务