# loop inside loop over one array

I have the following code:

const arr = Array.from({length: 5}, (_, i) => i + 1);
const finalArray = [];
for (let i = 0; i < arr.length; i++) {
for (let j = 0; j < arr.length; j++) {
finalArray.push(arr[i] + '-' + arr[j])
}
}

console.log(finalArray);

Which creates an array of range 1 => 5, and returns an array with a combination of all elements in the original array.

This code runs in O(n²), is it possible to make it more efficient?

• The current question title, which states your concerns about the code, applies to too many questions on this site to be useful. The site standard is for the title to simply state the task accomplished by the code. Please see How do I ask a good question?. Feb 23, 2021 at 8:35

You cannot output $$\\Theta(n^2)\$$ items in $$\o(n^2)\$$ time. Output size is a trivial lower bound of any algorithms.