javascript - 使用 lodash 过滤器我想用零替换 null
问题描述
let a = [{'abc': 1, 'qwe':2},{'abc': 2, 'qwe':2},{'abc': 5, 'qwe':null}, {'abc': 4, 'qwe':null}],
let required = _.chain(a)
_.groupBy(qwe)
_.map((value, key) => ({
name: key,
data: _.map(_.filter(value, item => {
return item.qwe;
})
'qwe'
)
})).value()
})
输出是:
qwe:[2,2,5]
预期输出为:
qwe:[2,2,5,0, 0]
解决方案
只需映射并使用||
将 null 设置为您想要的值(此处为 0)
let a = [
{ abc: 1, qwe: 2 },
{ abc: 2, qwe: 2 },
{ abc: 5, qwe: null },
{ abc: 4, qwe: null },
];
let res = _.chain(a)
.map("qwe")
.map((v) => v || 0)
.value();
console.log(res);
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>
推荐阅读
- postgresql - postgres 中的“智能”分组
- windows - 从 Windows 库文件 (.lib) 中提取图像
- python - 如何从流/渲染字典中压缩 html 文件?
- clojure - 使用deps.edn时如何从本地jar文件导入openpdf-1.3.23.jar?
- mysql - MySQL Docker 容器中长时间运行的 SQL 语句导致网络连接丢失
- jquery - 如果以大于零的数字开头,则 Google 折线图 y 轴边框缺失
- python - 在 Python 中打补丁
- python - python请求获得的页面与浏览器中看到的不同
- javascript - WebSocket/Node.js 帮助:无法建立到 wss://domain:8080 的连接 - 不是特定于浏览器的
- python - BeautifulSoup:查找具有给定属性的所有标签