Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вычислить сумму массивов и вернуть сумму в квадрате (https://javascript.ru/forum/misc/77934-vychislit-summu-massivov-i-vernut-summu-v-kvadrate.html)

Ksenia1970 04.07.2019 07:09

Вычислить сумму массивов и вернуть сумму в квадрате
 
В этой задаче два массива случайной длины, заполненные случайными числами, передаются нашей функции testArray. Вам нужно вычислить сумму всех элементов обоих массивов и вернуть ее в квадрате из функции. Пример ввода : [3, 6, 8, 6, 3, 1, 1, 8] [8, 7, 4, 1, 6, 3]
Пример вывода : 4225

1. function testArray(a, b) {
var testArray=a.concat(b);
var x;
for (x= 0; x< testArray.length; x++){
(туплю и не понимаю как дальше двигаться)};
}

2.function testArray(a, b) {
var sum = 0;
for (var i = 0; i < a.length; i++)
{
sum += a[i];
}
for (var i = 0; i < b.length; i++)
{
sum += b[i];
}
return(sum*sum);
}
}

3.function testArray(a, b) {
var x;
for (var i=0;i<=a.length;i++)
{
x+= a[i];
}
var y;
for (var j=0;j<=b.length;j++)
{
y+= b[j];
}
var k;
k=x+y;
return(k*k);
}
}


и ещё миллиард решений и всё не так( помогите, пожалуйста!

j0hnik 04.07.2019 07:30

var fn=(...arg)=>[].concat(...arg).reduce((s, el) => s + el)**2;
console.log( fn([1,2],[2,1]) );
console.log( fn([1,2],[2,1],[2,1,5,6,7]) );

Malleys 04.07.2019 07:48

Ksenia1970, у вас второй вариант работает, только там скобка лишняя была в конце функции...
function testArray(a, b) {
	var sum = 0;
	for (var i = 0; i < a.length; i++) {
		sum += a[i];
	}
	for (var i = 0; i < b.length; i++) {
		sum += b[i];
	}
	return sum * sum;
}

/* пример */
var sum = testArray([3, 6, 8, 6, 3, 1, 1, 8], [8, 7, 4, 1, 6, 3]);
alert(sum);


А в третьем варианте вы забыли назначить начальное число переменным x и y. И также у вас была ошибка в условии цикла. Сравните...

function testArray(a, b) {
	var x = 0;
	for (var i = 0; i < a.length; i++) {
		x += a[i];
	}
	var y = 0;
	for (var j = 0; j < b.length; j++) {
		y += b[j];
	}
	var k = x + y;
	return k * k;
}

/* пример */
var sum = testArray([3, 6, 8, 6, 3, 1, 1, 8], [8, 7, 4, 1, 6, 3]);
alert(sum);

Ksenia1970 04.07.2019 07:54

спасибо большое, да! всё вышло):)

Ksenia1970 04.07.2019 08:05

да, поняла в чём ошиблась, спасибо за помощь!)

Vlasenko Fedor 04.07.2019 13:21

const testArray = (...arg) => Math.pow(arg.flat().reduce((s, el) => s + el), 2);
let sum = testArray([3, 6, 8, 6, 3, 1, 1, 8], [8, 7, 4, 1, 6, 3]);
alert(sum); // 4225

Вариант :)


Часовой пояс GMT +3, время: 08:49.