javascript - 如何使用起始键从 JSON 对象构建数组?

标签 javascript arrays json

代码

var q = JSON.parse('[{"15": {"bUrl": "https://example.com/r2359","name": "Ninpo","url": null,"desc": null,"series": [{"title": "Nana","id": "6308","authors": ["Author1"]}]}}, {"390": {"bUrl": "https://example.com/r2667","name": "Sanpo","url": null,"desc": null,"series": [{"title": "Baba","id": "6498","authors": ["Author2"]}]}}]');

var yy = [];
for (i = 0; i < q.length; i++) {
    yy.push(q[i]);
}
console.log(yy);

我正在尝试访问字符串“15”和“390”,但循环它们只是为我提供每个组的整个对象。如何只提取数字字符串,以便我可以用它们构建一个数组?

最佳答案

您可以在对象上使用Object.keys来获取数组形式的键,并使用Array#reduceArray#concat<的组合 将键平面映射到单个数组中。

var q = JSON.parse('[{"15": {"bUrl": "https://example.com/r2359","name": "Ninpo","url": null,"desc": null,"series": [{"title": "Nana","id": "6308","authors": ["Author1"]}]}}, {"390": {"bUrl": "https://example.com/r2667","name": "Sanpo","url": null,"desc": null,"series": [{"title": "Baba","id": "6498","authors": ["Author2"]}]}}]');

console.log(
  Object.keys(q[0])
)

console.log(
  q.reduce((acc, x) => acc.concat(Object.keys(x)), [])
)
<script src="https://codepen.io/synthet1c/pen/KyQQmL.js"></script>

关于javascript - 如何使用起始键从 JSON 对象构建数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48194525/

相关文章:

javascript - 为内容后面的标题留空

javascript - 奇怪的过度滚动行为

javascript - 创建一个 JS 服务器,用于归档一周前的数据

javascript - JSON解码: Mixed types - not valid syntax error

java - 无法反序列化多态类型的 JSon 集合

javascript - OL5 的 ScaleLine 不适用于 EPSG :25832

javascript - 20 * 20 亿怎么会像大 O 表示法中的 2 * 3 那么长?

java - 将 ObservableList 添加到 HBox?

javascript - 对字母数字数组进行排序

javascript - 我的函数不会返回要保存在数组中的对象