这是一个两步问题:

1.)我试图将一个数组(原始数组)的内容“加倍”,将其保存在新数组(Doubled Array)中。

2)然后将这两个数组分配给具有2个属性的对象。
新物件
原始数
倍数

这是我到目前为止的事情,我做错了什么?

var numbers = [8, 12, 5, 2, 5, 7];
var doubledNumbers = [];


function doubled(arr){
 for (var i = 0; i < arr.length; i ++){
  var dub = arr[i];
   var dubb = dub*2;
   doubledNumbers.push(dubb);
 }

}

var collectionNumbers = {
  orginialNumbers: numbers,
  doubledNumbers: doubled(numbers)
};

console.log(collectionNumbers);

最佳答案

您当前的代码有什么问题,您的doubled函数什么都不返回(这意味着它正在返回undefined)。

更好的功能如下所示:

function doubled (arr) {
    var doubled = [];
    for (var i = 0; i < arr.length; i++) {
        doubled.push(arr[i] * 2);
    }
    return doubled;
}


但是,一个更好的解决方案是仅执行以下操作:

var collectionNumbers = {
    orginialNumbers: numbers,
    doubledNumbers: numbers.map(function (n) { return n * 2; })
};


.map很棒。

07-23 04:21