【发布时间】:2015-04-19 23:39:15
【问题描述】:
我想使用以下 category_id 值数组按 category_id 过滤以下对象:
[19012000, 19012001, 19012002, 19012003, 19012004, 19012005, 19012006, 19012007, 19012008]
Object {_account: "mjj9jp92z2fD1mLlpQYZI1gAd4q4LwTKmBNLz", _id: "rEEwENwnznCQvkm61wRziKlMRPqaYztnR4vn61", amount: 15, category: Array[2], category_id: "13005015"…}
Object {_account: "AaaraZrLqLfzRYoAPlb6ujPELWVW4dTK4eJWj", _id: "944r40rPgPU2nXqzMYolS5nyo6Eo9OuqrlDkB", amount: 50, category: Array[3], category_id: "19012000"…}
Object {_account: "AaaraZrLqLfzRYoAPlb6ujPELWVW4dTK4eJWj", _id: "rEEwENwnznCQvkm61wZ9uey62Pjy5YTqgYGDK", amount: 24, category: Array[2], category_id: "13005007"…}
Object {_account: "mjj9jp92z2fD1mLlpQYZI1gAd4q4LwTKmBNLz", _id: "rEEwENwnznCQvkm61wRziKlMRPqaYztnR4vn61", amount: 45, category: Array[2], category_id: "13005009"…}
Object {_account: "AaaraZrLqLfzRYoAPlb6ujPELWVW4dTK4eJWj", _id: "944r40rPgPU2nXqzMYolS5nyo6Eo9OuqrlDkB", amount: 105, category: Array[3], category_id: "13005009"…}
完成后,category_id 为 19012000 的对象应该是唯一剩下的了。
Object {_account: "AaaraZrLqLfzRYoAPlb6ujPELWVW4dTK4eJWj", _id: "944r40rPgPU2nXqzMYolS5nyo6Eo9OuqrlDkB", amount: 50, category: Array[3], category_id: "19012000"…}
我对不同版本的 iteratee 函数进行了多次尝试,包括 filter、map 和 each,并尝试了使用键、值、反转、选择和省略的键值过滤器。在尝试了这个之后,我认为应该可以,我与您联系:
var postDate = _.filter(_.first(goodDates), function(n){return category_id.indexOf(n.category_id) !== -1})
其中 goodDates 是对象列表,category_id 是上面的数组。
【问题讨论】:
标签: javascript arrays object functional-programming underscore.js