El resultado que quiero tener es newArray = [4, 9, 16, 25]. Pero no lo entiendo. ¿Dónde cometí errores? Por favor, ayúdame.

var array = [2, 3, 4, 5];
var result = [];

function multiply(a) {
   return a * a;
}

function newArray (a) {
    for (i=0; i<a.lenght; i++){
        result.push(multiply(a.value));
    }
}

var newArray = newArray(array);
-1
passion 23 feb. 2018 a las 13:58

5 respuestas

La mejor respuesta
var array = [2, 3, 4, 5];

function multiply(a) {
   return a * a;
}

function newArray (a) {
    return a.map(multiply)
}


var result = newArray(array); 
console.log(result)
2
zabusa 23 feb. 2018 a las 11:41

Manteniendo tu lógica tal como es.

Has escrito mal a.length. Y te perdiste el índice con la matriz a.

var array = [2, 3, 4, 5];
var result = [];

function multiply(a) {
   return a * a;
}

function newArray (a) {
    for (i=0; i<a.length; i++){ //spelling mistake
        result.push(multiply(a[i])); // index should be used
    }
    return result;
}

console.log(newArray(array)); 
0
Hemal 23 feb. 2018 a las 11:06

Descubrí que si uso ES6, puedo cambiar los códigos de la siguiente manera.

const arrayPast = [2, 3, 4, 5]; const result = []; const appendArray = arrayPast.map(x => x * x); result.push(appendArray);

0
passion 23 feb. 2018 a las 11:53

Esta es otra forma de hacerlo.

const array = [2,3,4,5];

function multipliedArray(arr) {
  return arr.map(x => x * x);
}

console.log(multipliedArray(array));
0
juan garcia 23 feb. 2018 a las 11:03

Otro pensamiento, usando forEach

const oldArray = [3, 4, 5, 6];
const square = [];
const newArray = oldArray.forEach((x) => square.push(x * x));
0
passion 23 feb. 2018 a las 13:26