Массив,возведение в степень элементов,запись их рядом

Сижу разбираюсь с такой штукой… есть функция,которая принимает массив и число. Возвращает массив возведённый в степень передаваемого числа ,и записывает результаты возведения каждого элемента массива рядом,например передаем ([1,2,3,4],2)
(2- это ‘число’ степень в которую возводим), функция возвращает [1,1,2,4,3,9,4,16]
Помогите разобраться.

1 лайк

А что именно не получается?

не получается задать позиции возведённым в степень всем элементам.
разобрался как впихнуть в средину ,и то , только 1…

попробуй в цикле делать ```
newArray.push(array[i]);
newArray.push(Math.pow(array[i],exponent));

1 лайк

вся фишка в том ,чтобы без пуша и прочих методов.

в [первом] элементе должна быть единица

без пуша и прочих методов

как так? мне тоже интересно, как можно решить без методов :grinning:
Пока такой вариантик (надеюсь, нет запретов на размещение своего кода):

function getArray(arr, exp) {

	function involution(num, exp) {
		var res = 1;
		for (var j = 0; j < exp; j += 1) {
			res *= num;
		}
		return res;
	}

	resultArr = [];

	for (var i = 0; i < arr.length; i += 1) {
		resultArr.push(arr[i]);
		resultArr.push(involution(arr[i], exp));
	}
	return resultArr;
}

console.log(getArray([1, 2, 3, 4], 2));
2 лайка

:relaxed: Если arr[i-1] это последний элемент массива,то можно же как-то отталкиваясь от этого,работать с остальными элементами,без методов всяких? Вручную так сказать ковырять

Переделал вариант @maxellort, теперь без push

function getArray(arr, exp) {

	function involution(num, exp) {
		var res = 1;
		for (var j = 0; j < exp; j += 1) {
			res *= num;
		}
		return res;
	}

	resultArr = [];

	for (var i = 0; i < arr.length; i += 1) {
		resultArr[i*2]=(arr[i]);
		resultArr[i*2+1]=(involution(arr[i], exp));
	}
	return resultArr;
}

console.log(getArray([1, 2, 3, 4], 2));
3 лайка

Точно! :sunglasses: