javascript - 如何使用过滤器或其他 JS 方法(按属性)显示特定的 JSON 数据
问题描述
这是来自 API 请求的 JSON:
[ { name: 'PM1', value: 21.51, key: 'PM1' },
{ name: 'PM25', value: 35.08, key: 'PM25' },
{ name: 'PM10', value: 54.85, key: 'PM10' },
{ name: 'PRESSURE', value: 1021.45, key: 'PRESSURE' },
{ name: 'HUMIDITY', value: 97, key: 'HUMIDITY' },
{ name: 'TEMPERATURE', value: 10.4, key: 'TEMPERATURE' } ]
我想删除最后 3 个对象(TEMPERATURE
和PRESSURE
)HUMIDITY
,所以它看起来像这样:
[ { name: 'PM1', value: 21.51, key: 'PM1' },
{ name: 'PM25', value: 35.08, key: 'PM25' },
{ name: 'PM10', value: 54.85, key: 'PM10' } ]
问题是——我该怎么办?使用slice()
不是一个好的选择,因为有时对象可能不一样,例如,可能没有TEMPERATURE
or PRESSURE
。我希望我说清楚了。如果您询问,此数据将在 CLI 应用程序中显示给用户;)
解决方案
您可以使用filter
排除名称不在的项目['TEMPERATURE', 'HUMIDITY', 'PRESSURE']
:
var data = [{ name: 'PM1', value: 21.51, key: 'PM1' },
{ name: 'PM25', value: 35.08, key: 'PM25' },
{ name: 'PM10', value: 54.85, key: 'PM10' },
{ name: 'PRESSURE', value: 1021.45, key: 'PRESSURE' },
{ name: 'HUMIDITY', value: 97, key: 'HUMIDITY' },
{ name: 'TEMPERATURE', value: 10.4, key: 'TEMPERATURE' }];
console.log(data.filter(d => !['TEMPERATURE', 'HUMIDITY', 'PRESSURE'].includes(d.name)));
推荐阅读
- php - 把表变成数据表
- r - 如何根据 dplyr 中的条件使用 cummean
- html - 如何创建一个自定义 HTML 标签来更改其中所有内容的文本颜色?
- jenkins - 告诉 Jenkins 我想在管道项目中构建一个特定的提交
- azure - Azure Powershell 脚本
- java - 使用 JAXB 将 Soap XML 响应转换为 Object Java
- javascript - 将类添加到特定的兄弟元素,而不是页面上出现的每个兄弟元素
- r - jupyter的R内核中的ggplot2更改了十进制分隔符
- r - 从R中的HTML标签中提取数据
- javascript - 一张一张地随机淡入 6 张图像网格