मैं बड़े-ओ के संदर्भ में अधिक कुशल नहीं हूं, लेकिन निश्चित रूप से unshift
विधि का उपयोग करना अधिक संक्षिप्त है:
var a = [1, 2, 3, 4];
a.unshift(0);
a; // => [0, 1, 2, 3, 4]
[संपादित करें]
यह jsPerf बेंचमार्क दिखाता है कि unshift
कम से कम कुछ ब्राउज़रों में तेजी से होता है, चाहे आप अलग-अलग बड़े-ओ प्रदर्शन की परवाह किए बिना यदि आप सरणी में जगह को संशोधित करने के साथ ठीक हैं। यदि आप वास्तव में मूल सरणी को बदल नहीं सकते हैं, तो आप नीचे दिए गए स्निपेट की तरह कुछ करेंगे, जो आपके समाधान के लिए प्रशंसनीय रूप से तेज़ नहीं लगता है:
a.slice().unshift(0); // Use "slice" to avoid mutating "a".
[संपादित करें 2]
पूर्णता के लिए prependArray(...)
, Array unshift(...)
विधि का लाभ लेने के लिए OP के उदाहरण के बजाय निम्नलिखित फ़ंक्शन का उपयोग किया जा सकता है :
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];