暂时想到的

// 1.通过循环将数组中的元素往后移一位
function _unshift(array, value) {
    let len = array.length;
    for (let i = len - 1; i >= 0; i--) {
        array[i+1] = array[i];
    }
    array[0] = value;
}

// 2. ES6的展开运算符,本题是要求用ES5
function _unshift(array,value) {
    const temp = [value, ...array]; // 用临时数组保存结果
    array.length = 0; // 将数组置空,不能使用 array = []
    // 将结果放回原数组
        temp.forEach(item=>{
          array.push(item)
        })
        return array
}

// 3.数组拼接,of方法可以将一组参数转化成数组。of方法也是ES6才支持的。
function _unshift(array,value) {
	const temp = Array.of(value).concat(array);
    array.length = 0;
     temp.forEach(item=>{
          array.push(item)
        })
        return array
}

// 4.万金油splice
function _unshift(array,value) {
    // splice返回的是被删除的元素
    array.splice(0,0,value);
    return array;
}

// 5.unshift方法
function _unshift(array,value) {
    array.unshift(value);
    return array;
}