在Javascript中,如何使用另一个数组创建新数组

时间:2018-02-23 10:58:56

标签: javascript for-loop

我想要的输出是newArray = [4,9,16,25]。但我不明白。我在哪里犯错误?请帮帮我。

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);

5 个答案:

答案 0 :(得分:2)

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)

答案 1 :(得分:0)

这是另一种方法

&#13;
&#13;
const array = [2,3,4,5];

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

console.log(multipliedArray(array));
&#13;
&#13;
&#13;

答案 2 :(得分:0)

保持你的逻辑不变。

你拼错了a.length。 你错过了数组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)); 

答案 3 :(得分:0)

我发现如果我使用ES6,我可以更改如下代码。

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

答案 4 :(得分:0)

另一个想法,使用forEach

const oldArray = [3, 4, 5, 6];
const square = [];
const newArray = oldArray.forEach((x) => square.push(x * x));