提问者:小点点

如何从包含多个数组的JSON中提取所有数据?


如何在JavaScript中从这个JSON中提取一个集合中的所有数字?

[
  {
    "name": "list0",
    "list": [0,1,2,3,4]
  },
  {
    "name": "list1",
    "list": [3,4,5,6,7,8,9]
  }
]

我想要一套只有:

0,1,2,3,4,5,6,7,8,9

共3个答案

匿名用户

您可以使用Array.Reduce和扩展运算符:

null

let input = [
  {
    "name": "list0",
    "list": [0,1,2,3,4]
  },
  {
    "name": "list1",
    "list": [3,4,5,6,7,8,9]
  }
];

let numbers = input.reduce((acc,cur) => [...acc, ...cur.list], []);
console.log(numbers);

console.log(...new Set(numbers))

匿名用户

您可以尝试使用set()

set对象允许您存储任何类型的唯一值,无论是基元值还是对象引用。

FlatMap()

flatmap()方法首先使用映射函数映射每个元素,然后将结果扁平化为新数组。 它与map()后跟深度为1的flat()相同,但是flatmap()通常非常有用,因为将两者合并到一个方法中会稍微更有效率。

null

var arr = [
  {
    "name": "list0",
    "list": [0,1,2,3,4]
  },
  {
    "name": "list1",
    "list": [3,4,5,6,7,8,9]
  }
]

var res = [... new Set(arr.flatMap(el => el.list))];
console.log(res);

匿名用户

您可以使用map和flat迭代数组并将其转换为一个级别数组,或者使用flatmap同时执行这两个操作,然后使用Set进行重复数据删除

null

array=[ { "name": "list0", "list": [0,1,2,3,4] }, { "name": "list1", "list": [3,4,5,6,7,8,9] } ]
set=[...new Set(array.map(x=>x.list).flat())]
console.log(set)