javascript - 如何按索引而不是名称映射 JSON 属性
问题描述
我有 web 应用程序,我有以下 JSON 数组:
var data=[
{ "category" : "Search Engines", "hits" : 5, "bytes" : 50189 },
{ "category" : "Content Server", "hits" : 1, "bytes" : 17308 },
{ "category" : "Content Server", "hits" : 1, "bytes" : 47412 },
{ "category" : "Search Engines", "hits" : 1, "bytes" : 7601 },
{ "category" : "Business", "hits" : 1, "bytes" : 2847 },
{ "category" : "Content Server", "hits" : 1, "bytes" : 24210 },
{ "category" : "Internet Services", "hits" : 1, "bytes" : 3690 },
{ "category" : "Search Engines", "hits" : 6, "bytes" : 613036 },
{ "category" : "Search Engines", "hits" : 1, "bytes" : 2858 }
];
我想hits
在一个单独的表中获取字段,例如 var hits = [5,1,1,1,1,1,1,6,1]
我知道,data.map(x=>x.hits)
但我在 json 中的属性名称是动态的。我事先不知道我的财产名称。所以我需要在 Json 中使用属性索引。
我知道可以通过 json 循环使用,
但是有没有办法hits
在没有任何循环的情况下在一个语句中获得所有内容?
解决方案
首先,您需要使用 Object.keys 获取密钥。然后只需放一个 Map 功能即可完成您的任务。
var data=[
{ "category" : "Search Engines", "hits" : 5, "bytes" : 50189 },
{ "category" : "Content Server", "hits" : 1, "bytes" : 17308 },
{ "category" : "Content Server", "hits" : 1, "bytes" : 47412 },
{ "category" : "Search Engines", "hits" : 1, "bytes" : 7601 },
{ "category" : "Business", "hits" : 1, "bytes" : 2847 },
{ "category" : "Content Server", "hits" : 1, "bytes" : 24210 },
{ "category" : "Internet Services", "hits" : 1, "bytes" : 3690 },
{ "category" : "Search Engines", "hits" : 6, "bytes" : 613036 },
{ "category" : "Search Engines", "hits" : 1, "bytes" : 2858 }
];
var KeyName=Object.keys(data[0])[1]
data.map(x => x[KeyName]);
推荐阅读
- excel - VBA宏通过特定单元格值过滤表格并删除所有行
- java - 当超类型方法调用超类型和子类型中都存在的方法时调用哪个实例方法
- sql - SQL Server - 使用 Sum Up 连续连接重复和交叉行
- javascript - 为什么 JavaScript 闭包不能与双括号一起正常工作?
- php - 尝试在 Amazon AWS 上的 mySQL 数据库上使用 JSON_OBJECT 函数
- maven - 在詹金斯作业上多次执行`mvn test`
- java - Java:使用文本文件创建数据集
- ios - IOS(Safari 和 Chrome)自适应网站上的滚动问题 - 上个月开始出现
- linux - 获取以前版本的 linux-next 的日志
- javascript - 将自动完成字段中的所有条目提取到列表中