面试题答案
一键面试思路
- 由于IE8不支持
unshift
方法,所以需要提供兼容方案。 - 对于现代浏览器,直接使用
unshift
方法,因为其性能最优。 - 对于IE8及类似不支持
unshift
的浏览器,手动实现类似功能,通过遍历数组,将每个元素向后移动一位,然后在数组开头添加新元素。
代码实现
function addToHead(arr, value) {
if (typeof Array.prototype.unshift === 'function') {
// 现代浏览器直接使用unshift
arr.unshift(value);
} else {
// IE8及以下手动实现
for (let i = arr.length; i > 0; i--) {
arr[i] = arr[i - 1];
}
arr[0] = value;
}
return arr;
}
你可以这样调用该函数:
let myArray = [1, 2, 3];
let newArray = addToHead(myArray, 0);
console.log(newArray);