[英]Returning key/value pair in javascript
我正在編寫一個JavaScript程序,要求將數字數組的原始值和雙精度值存儲在鍵/值對中。 我是javascript的新手。 這是程序:
var Num=[2,10,30,50,100];
var obj = {};
function my_arr(N)
{
original_num = N
return original_num;
}
function doubling(N_doubled)
{
doubled_number = my_arr(N_doubled);
return doubled_number * 2;
}
for(var i=0; i< Num.length; i++)
{
var original_value = my_arr(Num[i]);
console.log(original_value);
var doubled_value = doubling(Num[i]);
obj = {original_value : doubled_value};
console.log(obj);
}
程序讀取一個函數中數組的內容,然后在另一個函數中將該值加倍。
我的程序產生以下輸出:
2
{ original_value: 4 }
10
{ original_value: 20 }
30
{ original_value: 60 }
50
{ original_value: 100 }
100
{ original_value: 200 }
我正在尋找的輸出是這樣的:
{2:4, 10:20,30:60,50:100, 100:200}
我在做什么錯?
謝謝。
您不能在對象文字中使用表達式作為標簽,它不會被求值。 而是改用括號表示法。
var original_value = my_arr(Num[i]),
doubled_value = doubling(Num[i]);
obj = {}; // remove this line if you don't want object to be reset each iteration
obj[original_value] = doubled_value;
您的目標是使用新屬性豐富obj
映射,以便獲得{2:4, 10:20,30:60,50:100, 100:200}
。 但是,與其相反,您將obj
變量的值替換為僅具有一個屬性的對象。
更改
obj = {original_value : doubled_value};
至
obj[original_value] = doubled_value;
然后,在循環結束時,只需登錄
console.log(obj);
這是完整的循環代碼:
for(var i=0; i< Num.length; i++) {
var original_value = my_arr(Num[i]);
var doubled_value = doubling(original_value);
obj[original_value] = doubled_value;
}
console.log(obj);
要么:
//Original array
var Num=[2,10,30,50,100];
//Object with original array keys with key double values
var obj = myFunc(Num);
//Print object
console.log(obj);
function myFunc(arr)
{
var obj = {};
for (var i in arr) obj[arr[i]] = arr[i] * 2;
return obj;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.