在我的例子中如何将对象推入数组

时间:2014-12-07 23:16:19

标签: javascript

我正在尝试将对象推送到数组,并且对象的差异只是一个属性。

代码段:

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',
        }]
    });
}

我需要在今年和明年添加对象,但我不确定是否有更好的方法来简化上述代码。谢谢您的帮助!

2 个答案:

答案 0 :(得分:2)

使用您当前的代码,您(目前)将以year == 2015nextYear == 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]);
}