我正在尝试在amusementRides
函数中循环doublePrices
,将价格乘以2,但我得不到任何回报。我错过了什么?
var amusementRides = [
{
id:'A1',
name:'superman',
price:12,
opening_dates:[
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday',
'Sunday'
],
children_access:false
},
{
id:'A2',
name:'raging bull',
price:10,
opening_dates:[
'Saturday',
'Sunday'
],
children_access:false
},
{
id:'A3',
name:'teacups',
price:7,
opening_dates:[
'Friday',
'Saturday',
'Sunday'
],
children_access:true
}
];
// Define variable
var amusementRidesDouble = doublePrices(amusementRides);
// Define function to multiply price by 2
function doublePrices(amusementRides) {
for (var price in amusementRides) {
if amusementRides.hasOwnProperty(price) {
alert (price *= 2);
}
}
}
console.log(amusementRidesDouble);
提前致谢!
答案 0 :(得分:3)
您可以使用数组的map函数并更新必填字段
function doublePrices(amusementRides) {
amusementRidesdouble = amusementRides.map(function(item){
item.price = 2 * item.price;
return item;
})
return amusementRidesdouble;
}
答案 1 :(得分:1)
amusementRides
是一个数组,未定义为键值
将方法更改为
for (var counter = 0; counter < amusementRides.length; counter++)
{
if (amusementRides[counter].price)
{
alert (amusementRides[counter].price * 2);
amusementRides[counter].price *= 2;
}
}
答案 2 :(得分:1)
一个好的方法是:
var doublePrices = function( data ) {
data.forEach( function( item ) {
item.price *= 2;
}
return data;
}
答案 3 :(得分:0)
你应该避免使用数组
的for-in循环你可以使用forEach:
amusementRides.forEach(function(item) {
item.price *= 2;
});
答案 4 :(得分:0)
for (var i=0; i<amusementRides.length; i++) {
amusementRides[i].price*=2;
}
答案 5 :(得分:0)
我认为你的代码中唯一的错误是你试图像在C#中那样预习循环。在Javascript中你不能这样做。
您可以修改以下代码。
for ( var i=0;i<amusementRides.length;i++) {
var price=amusementRides[i];
alert (price *= 2);
}
但最好的方法是:
amusementRides = amusementRides.forEach( function( item ) {
item.price *= 2;
}