2014-12-07 98 views
0

我想將對象推到一個數組,並且對象的差異只是一個屬性。如何在我的情況下將對象推入數組

代碼片段:

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

你缺少分號,你的代碼包含非法字符。 – 2014-12-07 23:20:02

+0

這是不完全清楚你在問什麼。在你發佈的代碼中有一些小的語法錯誤,你想修復它們還是你問代碼是否可以簡化? – 2014-12-07 23:23:14

+0

我無法理解你的需求。 – 2014-12-07 23:23:15

回答

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]); 
} 
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]); 
} 
相關問題