如何根据JavaScript Node.js中的单个值动态拆分数组
How to split array dynamically based on single value in JavaScript Node.js
我需要根据JavaScript中的单个值动态拆分数组。
我有一个数组:
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'}
];
我希望数组按 Tag 拆分,例如。
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?
我将不胜感激任何帮助
您可以将对象与分组项目一起使用。它适用于任何标签,并允许所有标签的列表 Object.keys(grouped)
,如果需要的话。
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' }],
grouped = Object.create(null);
dataStuff.forEach(function (a) {
grouped[a.Tag] = grouped[a.Tag] || [];
grouped[a.Tag].push(a);
});
document.write(Object.keys(grouped));
document.write('<pre>' + JSON.stringify(grouped, 0, 4) + '</pre>');
如果您的标签名称事先已知且有限
然后简单地
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";
});
或者,您可以创建一个 JSON 对象,保留标签名称,例如
var tags = {
"Fruit" : [],
"Sport" : [],
"Kitchen" : [],
};
for(var tag in tags)
{
tags[tag] = dataStuff.filter(function(val){
return val.Tag == tag;
});
}
现在tags.Fruit
将为您提供Fruit
数组。
相关文章:
- 将值动态绑定到jquery中的切换按钮
- 根据CHECKBOX输入值动态更新DIV信息
- 如何匹配多个值使用正则表达式返回单个值
- 在extJS 4.2中,有没有一种方法可以将模型值动态绑定到表单
- 将从控制器返回的selectbox值动态呈现为json
- 如何从$_COOKIE中提取单个值[“elementValues”]
- 尝试从csv文件中检索单个值时出现问题
- Highcharts-在单个值上显示标记图标
- 如何从MYSQL中获取单个值并将其保存到JavaScript变量中
- 根据 Array Javascript 中的字符串值动态创建数组名称
- 如何根据JavaScript Node.js中的单个值动态拆分数组
- 从 HTML 页面中的第三方响应数据中获取单个值
- 根据角度范围值动态更改分页页面大小
- 数组循环以获取单个值
- 使用DB值动态添加字段到Form,php
- 从流星服务器到客户端获取单个值
- 使用JSON键和值动态创建一个表
- 如何使用 AngularJS 将值动态绑定到链接
- 如何通过输入数字值动态添加文本区域输入?AngularJs.
- 将新选项值动态添加到选择框中(如果尚未存在)