使用 lodash 查找对象中未定义属性的数量

问题描述 投票:0回答:2
let x =    {
      "name": undefined,
      "value": "tr",
      "prop1": undefined,
      "prop2": "test",
      "prop3": 123
    };

我需要找到未定义的属性数量,因此在本例中为 2。 谢谢你

javascript lodash
2个回答
0
投票

使用常规 JS:

好的评论指出我们确实可以立即过滤;更高效:

Object.values(x).filter(v=> v === undefined).length

Object.entries(x).map(([k, v]) => v === undefined).filter(Boolean).length

与洛达什

_.filter(x, (v, k) => v === undefined).length

0
投票

您可以使用

_.countBy()
获取一个对象 (
counts
),其中包含某个值在原始对象 (
data
) 中出现的次数。然后,您可以从
undefined
对象获取
counts
值的数量:

const data = { "name": undefined, "value": "tr", "prop1": undefined, "prop2": "test", "prop3": 123 };

const counts = _.countBy(data);

console.log(counts);

console.log(counts.undefined);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

© www.soinside.com 2019 - 2024. All rights reserved.