javascript - 如何有条件地计算对象中的元素数量?
问题描述
我有一个对象,例如
{
a: {
x: 1,
y: 2
},
b: {
x: 1,
y: 2
},
c: {
x: 100,
y: 2
},
}
我想计算满足条件的元素数量x: 1
。有没有一种简单的方法可以做到这一点?
我可以采用简单的方式,但我想学习 JavaScriptonic 方式(如果有的话):
let data = {
a: {
x: 1,
y: 2
},
b: {
x: 1,
y: 2
},
c: {
x: 100,
y: 2
},
}
let counter = 0
for (k in data) {
if (data[k].x === 1) {
counter += 1
}
}
console.log(counter)
// 2
解决方案
我能想到的最干净的方法是使用Object.values
:
console.log(Object.values(data).filter(v => v.x === 1).length); // 2
推荐阅读
- php - 如何在 Visual Composer 标题中的 Wordpress 简码中获取页面 ID
- ruby-on-rails - Rails SQL select,CASE 语句似乎没有按预期工作
- c# - 为什么数据库不在服务中调用 onCreate?
- c# - 我想使用相同的视图使用 MVC razor Engine 在不同的导航栏中显示不同的结果。我设计了一个使用 html 标签的页面
- javascript - 将 ValidatorJS isISIN 转换为 Typescript 并出现错误?
- python - 有没有办法让 Python 脚本考虑机器的默认代理设置?
- android - 将统一应用程序上传到 Play 商店时出错
- html - 寻找有关如何将我的下拉导航栏居中以进行大学项目的建议
- javascript - Webpack 条目和依赖项配置错误
- python - 递归给了我完全错误的答案