簡體   English   中英

如何編寫將數字加倍並將其傳遞給對象的函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM