[英]How to write a function to double numbers and pass them as to an object
numbers = [1,2,3,4,5];
function doubling(number) {
number *= 2;
return number;
}
obj = {};
for (var i = 0; i < numbers.length; i++)
doubled = doubling(numbers[i]);
obj[numbers[i]] = doubled;
console.log(obj);
當我運行代碼時,當我想要打印{1:2、2:4、3:6、4:8、5:10}時,它會打印'10'。 為什么會這樣?
function doubling(number) {
number *= 2;
return number;
}
obj = {};
// your problem was here you were missing the curly braces
// so it was only executing the first line in the loop
for (var i = 0; i < numbers.length; i++) {
doubled = doubling(numbers[i]);
obj[numbers[i]] = doubled;
}
console.log(obj);
您最初的循環基本上是這樣...
for (var i = 0; i < numbers.length; i++) {
doubled = doubling(numbers[i]);
}
obj[numbers[i]] = doubled; // numbers[i] is undefined so it
// sets obj[undefined] = 10
// (the value of double after the loop)
console.log(obj);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.