我有以下数组:
"country": ["name", "units.size", "units.weight", "formats.date", "formats.number"]
我希望结果得到以下数组:
"country": ["name", "units", "formats"]
我只想获取没有嵌套属性的对象名称。
答案 0 :(得分:3)
let country = ["name", "units.size", "units.weight", "formats.date", "formats.number"];
country = [...new Set(country.map(a => a.match(/\w+/)[0]))];
console.log(country);
答案 1 :(得分:0)
您可以使用forEach()
遍历数组并将每个类别推入新数组。
在您的forEach()
中,您可以使用indexOf()
检查类别是否已经存在。
答案 2 :(得分:0)
const countries = { "country": ["name", "units.size", "units.weight", "formats.date", "formats.number"] };
countries.country = [...new Set(countries.country.map((item) => item.includes('.') ? item.split('.')[0] : item))]
console.log(countries);
答案 3 :(得分:0)
您还可以通过在数组中进行映射并在第一个.
上拆分条目来简单地实现此目的。之后,使用Set删除重复项:
let country = ["name", "units.size", "units.weight", "formats.date", "formats.number"];
let result = [...new Set(country.map(x => x.split('.')[0]))]
console.log(result)