这是一个两步问题:
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
很棒。