Помогите разобраться с кодом, выводится только одно действие

Хочу чтобы функция принимала массив элементов, выводила его и сумму всех его элементов. Когда делал отдельными функциями, то все работало. Пытаюсь все объединить в одну, но вывод происходит только массива, без суммы элементов. Помогите разобраться что я делаю не так.

function createArr(){
    var sum = 0;
    var emptyArr = [];
    for (var i=0 ; i < arguments.length; i++) {
        emptyArr[i] = arguments[i];
        sum+=arguments[i];
    }
    return emptyArr;
    console.log(sum);

}

console.log(createArr(1,2,3,4))

А если я захочу к примеру сделать какое-то действие с элементами массива, например возведение в квадрат и посчитать потом сумму получившихся элементов, как можно будет упростить код, чтобы sum не присваивать опять arguments[i]*arguments[i] а она брала значение уже готового массива emptyArr ?

function createArr () {
    var sum=0;
    var emptyArr = [];
    for (var i=0; i<arguments.length; i++) {
        emptyArr[i] = arguments[i]*arguments[i];
        sum+=arguments[i]*arguments[i];
    }
    console.log(sum);
    return emptyArr;
}

console.log(createArr(1,2,3,4))


Ответы (2 шт):

Автор решения: dmitriy_vlz

Ну да, либо как тебе в комментария описали, либо выводи объектом и потом бери , что тебе надо:

function createArr(){
    var sum = 0;
    var emptyArr = [];
    for (var i=0 ; i < arguments.length; i++) {
        emptyArr[i] = arguments[i];
        sum+=arguments[i];
    }
    return {
         emptyArr,
         sum
   };

}

console.log(createArr(1,2,3,4)) // { emptyArr: [1, 2, 3, 4],  sum: 10 }
→ Ссылка
Автор решения: Konstantin_SH
  1. Вы в функции пишете:
return emptyArr;

После этой строки весь дальнейший код не выполняется. Перенесите console.log(sum) выше ретерна.

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

Чтоб выводила достаточно написать:

function createArr(){
    var sum = 0;
    for (var i=0 ; i < arguments.length; i++) {
        sum+=arguments[i];
        console.log( (i+1) + " array element = " + arguments[i]);
    }
console.log("sum = "+ sum);
}

  1. Чтоб возвести в степень используют функцию pow объекта Math
function createArr(){
var sum =0;
var array[];
for (var i = 0;i <arguments.length; ++i){
array [i] = Math.pow(arguments[i], 2); // в квадрат
sum += array[i];
console.log (array[i]);
}

console.log(sum);
} 
→ Ссылка