let x = {
"name": undefined,
"value": "tr",
"prop1": undefined,
"prop2": "test",
"prop3": 123
};
我需要找到未定义的属性数量,因此在本例中为 2。 谢谢你
使用常规 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
您可以使用
_.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>