我需要基於JavaScript中的單個值動態分割數組。如何根據JavaScript中的單個值動態分割數組Node.js
我有一個數組:
var dataStuff = [
{ Name: 'Apple', Tag: 'Fruit', Price: '2,5'},
{ Name: 'Bike', Tag: 'Sport', Price: '150'},
{ Name: 'Kiwi', Tag: 'Fruit', Price: '1,5'},
{ Name: 'Knife', Tag: 'Kitchen', Price: '8'},
{ Name: 'Fork', Tag: 'Kitchen', Price: '7'}
];
,我希望通過標籤, 如分割陣列。
var Fruit = [
{ Name: 'Apple', Tag: 'Fruit', Price: '2,5'},
{ Name: 'Kiwi', Tag: 'Fruit', Price: '1,5'}
];
var Sport = [
{ Name: 'Bike', Tag: 'Sport', Price: '150'}
];
var Kitchen = [
{ Name: 'Knife', Tag: 'Kitchen', Price: '8'},
{ Name: 'Fork', Tag: 'Kitchen', Price: '7'}
];
如果dataStuff陣列將更加標籤然後在結果將是多個陣列。 無論如何,我不知道我該怎麼做。我使用node.js + Jade(查看),並且我認爲最好的想法是在視圖中這樣做,因爲我必須將每個數組放在表中。也許是這樣的:
// Basic table
tbody
- each item in dataStuff
tr
td= item.Name
td= item.Tag
td= item.Price
// Other tables
- each item in dataStuff
item.Tag.push(item);
// adding items to array based on Tag
// probably it won't work
// but still how should i draw table?
如果你的標籤名稱是預先知道的和有限的
然後只需
var Fruit = dataStuff.filter(function(val){
return val.Tag == "Fruit";
});
var Sport = dataStuff.filter(function(val){
return val.Tag == "Sport";
});
var Kitchen = dataStuff.filter(function(val){
return val.Tag == "Kitchen";
});
或者你可以創建我將是任何幫助
它有助於完全清空物體嗎? 'Object.create(null)' –
,因爲你可以有一個'toString'標籤,這是行不通的。 –
如果我的dataStuff來自數據庫,該怎麼辦?我如何使用'grouped = Object.create(null);'然後? 'var groupedstuff = dataStuff,grouped = Object.create(null);' - 可能它不起作用? – DiPix