有没有一种更有效的方法来找到对象的返回子集
Is there a more efficient way to find return a subset of an object?
这很有效,但看起来非常笨拙。有问题的方法是streetsInObj,而obj是一个对象,它可以有对应于streets.all的键"p"、"f"、"t"answers"r"。所以我只是想返回对象中存在的所有街道。
define(['underscore'], function (_) {
var streets = {
all: [
{abbrev: "p", name: "Preflop"},
{abbrev: "f", name: "Flop"},
{abbrev: "t", name: "Turn"},
{abbrev: "r", name: "River"}
],
streetsInObj: function(obj) {
self.obj = obj;
streets = [];
_.map(self.all, function(street, obj) {
if(self.obj[street.abbrev]) {
streets.push(street);
}
});
return streets;
}
};
var self = streets;
return self;
});
关于:
return _.filter(self.all, function(s) {
return s.abbrev in obj;
});
这应该是好的,只有4条街。如果你有4000条街道,而物体的数量可能会少得多,你可能会从一个街道物体开始获得一些速度,比如:
all: {
p: {abbrev: "p", name: "Preflop"},
f: {abbrev: "f", name: "Flop"},
t: {abbrev: "t", name: "Turn"},
r: {abbrev: "r", name: "River"}
}
然后做:
return _.map(_.keys(obj), function(k) {
return self.all[k];
});
这里返回一个数组的子集(all)。只是想注意,如果您想返回javascript对象的子集属性,可以使用_.pick函数。
相关文章:
- 序列化数据属性中对象的最可靠方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 如何从对象的原型方法访问JavaScript对象属性
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- 设置嵌套对象属性的更好方法
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- call()和apply()实际上是用来欺骗方法处理类似数组的对象的
- 对象文字方法上的Javascript绑定不起作用
- Meteor应用程序无法运行-对象#<编译器>没有方法'主机'
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- Underscore.js某些对象的所有方法的总和
- 对象#<XMLHttpRequest>没有方法'完成'
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 丢失对象“;这个“;方法中的上下文
- 如何在ajax中调用javascript对象的方法
- 为什么页面方法对象未定义
- 如何使用在另一个文件中定义的JavaScript方法/对象
- 如何告诉JsHint忽略“未解析的函数或方法”?对象上的警告
- 使用jinja/javascript动态创建方法/对象