我不确定big-O是否更有效,但使用unshift方法肯定更简洁:
Var a = [1,2,3,4];
a.unshift (0);
// => [0,1,2,3,4]
console.log ({});
(编辑)
这个jsPerf基准测试表明,不管大o性能是否不同,如果您可以在适当的位置修改数组,那么unshift在至少两个浏览器中都要快得多。如果你真的不能改变原始数组,那么你会像下面的代码片段那样做,这似乎并不比你的解决方案快得多:
a.slice().unshift(0); // Use "slice" to avoid mutating "a".
[编辑2]
为了完整起见,可以使用以下函数代替OP的示例prependArray(…)来利用Array unshift(…)方法:
函数prepend(value, array) {
var newArray = array.slice();
newArray.unshift(价值);
返回newArray;
}
Var x = [1,2,3];
Var y = preend (0, x);
// x => [1,2,3];
// y => [0,1,2,3];
Console.log ({x, y});