我在条件过滤的数据中循环[['0,3,2,1,0'], ['0,1,2,3,0'], ['0,1,3,2,0'], ['1,0,2,3,0'], ['3,0,0,2,1'], ['1,0,2,3,0'], ['1,3,0,2,0'], ['0,0,1,0,0'], ['0,2,1,0,0'], ['3,1,0,2,0'], ['3,2,0,0,1'], ['2,0,0,3,1'], ['0,2,0,1,2'], ['2,0,3,0,1'], ['0,3,0,1,2'], ['2,3,1,0,0']]
。
issues

我想知道Lodash是否有办法解决这个问题?
答案 0 :(得分:1)
我会做这样的事情,实际上我才知道。
const filter = _.pickBy(data, (list) => {
return //whatever you want
});
答案 1 :(得分:0)
查看您的代码,从我可以收集的内容中,您将数据作为对象字面值,然后使用_destroy
标记标记您不想要的密钥。
然后你想要另一个没有标记为_destroy
的对象文字。
下面是没有lodash的版本。 在lodash中可能有一种更简单的方法,不确定。但是对我来说ES6的方式看起来很自然,很容易理解。甚至可以通过将比特分成实用函数来使其看起来更简单,例如。如果你想要键/值,可以在其他地方使用最后一个reduce,转换回对象文字。
PS。如果您不介意修改原始对象文字,这更容易,而且很可能是更好的性能。像React这样的东西我相信像确定性数据一样,因此就地删除可能不是一个选择。
const data = {
a: {
_destroy: true,
value: "destroy this"
},
b: {
value: "Keep Me!!"
}
};
const data2 =
Object.entries(data).
filter(([key, value]) => !value._destroy).
reduce((obj, [key, value]) => (obj[key] = value) && obj, {});
console.log(data2);