javascript - lodash:过滤具有非空数组值的对象

标签 javascript arrays lodash

我是 lodash 的新手,我正在编写一行,该行返回具有非空数组作为值的对象(不包括空数组值);

let results = {"1":[1,2,3],"2":[2,4,6],"0":[]};
let filteredResults = _.filter(results, (result) => {return (_.size(_.values(result)) > 0);});
console.log(filteredResults);

我的 filteredResults 预期值为:{'1': [ 1, 2, 3 ], '2': [ 2, 4, 6 ] }。但是我得到了 [ [ 1, 2, 3 ], [ 2, 4, 6 ] ] 的结果。

按键12在哪里?

最佳答案

_.filter 方法可以接受一个对象作为其第一个参数,但它只会返回一个包含原始对象中接受的值的数组。您可能想改用 _.pickBy 方法,该方法将返回一个带有通过过滤器的键/值对的对象:

let filteredResults = _.pickBy(results, value => value.length > 0)

关于javascript - lodash:过滤具有非空数组值的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47169226/

相关文章:

c++ - 动态分配还是浪费内存?

c - 如何获取动态分配的二维数组的大小

Javascript 数组包含键是字符串或字符串数​​组的位置

javascript - 如何将对象键名与lodash匹配?

javascript - 页面上的多个 fineupload 实例

javascript - 使 CKEditor 图像导入器不添加尺寸

javascript - JQuery 图像 slider 工作异常

javascript - 根据 id 以外的属性查找元素

javascript - 展平 Array<Array<T> | 最有效的方法JavaScript 中的 T>

javascript - 检查合并的数组是否包含来自两个数组的项目并更新合并的数组 JS