big-O 측면에서 더 효율적인지 확실하지 않지만 unshift
방법을 사용하는 것이 더 간결합니다.
var a = [1, 2, 3, 4];
a.unshift(0);
a; // => [0, 1, 2, 3, 4]
[편집하다]
이 jsPerf 벤치 마크 는 어레이를 제자리에서 수정해도 괜찮다 면unshift
다른 big-O 성능에 관계없이 적어도 몇 개의 브라우저에서 상당히 빠르다 는 것을 보여줍니다 . 원래 배열을 변경할 수 없다면 아래 스 니펫과 같은 작업을 수행 할 수 있습니다. 솔루션보다 훨씬 빠르지 않은 것 같습니다.
a.slice().unshift(0); // Use "slice" to avoid mutating "a".
[편집 2]
완전성 prependArray(...)
을 위해 OP의 예제 대신 다음 함수를 사용 하여 Array unshift(...)
메소드를 활용할 수 있습니다 .
function prepend(value, array) {
var newArray = array.slice();
newArray.unshift(value);
return newArray;
}
var x = [1, 2, 3];
var y = prepend(0, x);
y; // => [0, 1, 2, 3];
x; // => [1, 2, 3];