如何添加带有下划线 js 的计算属性
How to add a computed property with underscore js?
我们需要向对象数组添加一个额外的属性。
数组:
var data = [
{
event:'event 1',
status:'Upcoming'
}
{
event:'event 2',
status:'Completed'
}
{
event:'event 3',
status:'Canceled'
}
...
]
为了根据其值为状态标签提供不同的颜色,我们希望将数组转换为以下内容:
var result = [
{
event:'event 1',
status:'Upcoming',
statusCss:'label-success'
}
{
event:'event 2',
status:'Completed',
statusCss:'label-info'
}
{
event:'event 3',
status:'Canceled',
statusCss:'label-warning'
}
...
]
想出一个JavaScript for
循环很容易做到这一点:
for (var i = 0; i < data.length; i++) {
var t = data[i];
if (t.status === 'Upcoming') t.statusCss = "label-success";
if (t.status === 'Canceled') t.statusCss = "label-warning";
if (t.status === 'Completed') t.statusCss = "label-info";
result.push(t);
}
但是,下划线中有什么.js可以用更少的代码处理这种转换吗?
是的。
你可以使用地图。Map 循环访问集合,并允许您修改集合中的项并将这些项返回到新集合。
data = _.map(data, function(val) {
if (val.status === 'Upcoming') val.statusCss = "label-success";
if (val.status === 'Canceled') val.statusCss = "label-warning";
if (val.status === 'Completed') val.statusCss = "label-info";
return val;
});
这将继续修改数据,以便数据包含与以前相同的对象列表,但具有新属性
相关文章:
- 如何使用下划线js转换这些数据
- 带嵌套json的下划线js查找
- 在Backbone.js应用程序中使用lodash而不是下划线
- 下划线扩展方法和结构.js子类
- 使用下划线.js筛选 JS 对象
- 是否可以使用下划线.js对此 JSON 数据进行分组
- 下划线.js,根据键值删除对象数组中的重复项
- 下划线.js .map 方法会中断 IE8
- _.数组中的每个查找值都返回 true 或 false.使用下划线 JS
- 为什么我的代码使用下划线.js但当我使用 Ramda.js 时却不行
- 在我的jQuery/js中包含下划线模板
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- 下划线.js HTML 元素中的模板
- 在节点中使用下划线.js
- 对于下划线中的每个.JS
- 做下划线.js函数,如_.findWhere(),同步返回结果
- 将非字符串属性与下划线匹配.js在哪里
- 以下下划线.js代码如何工作
- 主干.js/下划线.js错误:没有方法“html”
- 编码JS下划线_.从零开始扩展