【发布时间】:2015-09-19 05:29:22
【问题描述】:
我无法解决这个奇怪的问题。 Link to Jsbin
我正在尝试使用单击功能将值添加到数组 (prices)。当用户单击按钮时,它会将定价数据添加到 Javscript 数组 prices。
我需要一次添加多个数据条目,其中包含价格但不同的day。
这是我的#add_pricing 的点击功能。
$("#add_pricing").click(function(e){
e.preventDefault();
data = {
"price": "1200",
"days": ["1","3","4"]
}
addData(data);
console.log(prices)
});
所以当用户点击它时,如您所见,它会将data 变量发送到addData,即:
function addData(data)
{
for (i = 0; i < data.days.length; i++){
data.day = data.days[i]; //eg. data.day = "1"
prices.push(data);
}
}
所以addData() 函数循环遍历data.days,我希望它向prices 数组推送一个条目,但一次一个。
但它似乎每次迭代都一次推送所有 4 个项目(您可以查看是否记录输出)
而且它没有正确设置我的 day 变量,day 总是设置为 4,即使我记录了输出,它似乎显示的是正确的。
预期输出:
[1] => {day: 1, price: 1200}
[2] => {day: 3, price: 1200}
[3] => {day: 3, price: 1200}
实际输出
[1] => {day: 4, price: 1200}
[2] => {day: 4, price: 1200}
[3] => {day: 4, price: 1200}
【问题讨论】:
标签: javascript jquery arrays for-loop push