Lodash和地图/过滤器/键 - 更好的实现?

时间:2015-05-15 20:07:42

标签: javascript lodash

我有一些数据:

this.shoes = {
    {id: 1001, color: "red", cost: 100},
    {id: 1002, color: "red", cost: 50},
    {id: 1003, color: "blue", cost: 0}
}

我正在使用lodash和本机实现的组合,如果只是使用lodash有更简洁的方式,那就很好奇。

我有什么:

var shoes = this.shoes;
var avail = _.keys(shoes).filter(function(s){
               return shoes[s].cost > 0;
            }).map(function(){
                // return some data
            });

我提出的原因" this.shoes"变成一个变量是因为我需要"这个"对周围的物体完好无损。如果我把" this.shoes"在_.keys()中,它不起作用。如果有办法去"绑定"我的内容适用于所有可以使用的lodash方法。

我的lodash专业知识缺乏,如果我能完全缩短它,那就很好奇。 感谢。

1 个答案:

答案 0 :(得分:0)

您的this.shoe应该是

之类的数组
 this.shoes = [
    {id: 1001, color: "red", cost: 100},
    {id: 1002, color: "red", cost: 50},
    {id: 1003, color: "blue", cost: 0}
];

然后你可以这样做:

var avail = _.filter(this.shoes, function(s){
               return s.cost > 0;
            }).map(function(){
                // return some data
            });

当然,您不需要将“this.shoes”放入变量中。