如何在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
您可以使用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)