我正在尝试将对象推送到数组,并且对象的差异只是一个属性。
代码段:
var categoryList = ['product1', 'product2', 'product3'...more]
var productlist = [];
var date = new Date();
var year = date.getFullYear();
var nextYear = year++
for (var a = 0; a < categoryList.length; a++) {
productList.push({
date: year + '-' + categoryList[a],
'items': [{
'quatity': 0 'type': 'new'
}]
});
productList.push({
date: nextYear + '-' + categoryList[a],
'items': [{
'quantity': 0 'type': 'new',
}]
});
}
我需要在今年和明年添加对象,但我不确定是否有更好的方法来简化上述代码。谢谢您的帮助!
答案 0 :(得分:2)
使用您当前的代码,您(目前)将以year == 2015
和nextYear == 2014
结束。我认为你打算这样做:
var nextYear = year + 1;
您可以重构代码以使用函数将项目添加到产品列表中。 (我假设quatity
属性只是一个错字,所以唯一的区别就是年份。)
function addProduct(year, product) {
productList.push({
date: year + '-' + product,
items: [{
quantity: 0,
type: 'new'
}]
});
}
for (var a = 0; a < categoryList.length; a++) {
addProduct(year, categoryList[a]);
addProduct(nextYear, categoryList[a]);
}
答案 1 :(得分:0)
你可以这样做;
function addProduct(prodDate) {
productList.push({
'date':prodDate,
'items' : [ {
'quatity' : 0,
'type' : 'new'
} ]
});
}
for (var a=0; a < categoryList.length; a++) {
addProduct(year + '-' + categoryList[a]);
addProduct(nextYear + '-' + categoryList[a]);
}