字符串数组,在字符串(嵌套)中带点的字符串数组

时间:2019-05-23 14:03:20

标签: javascript arrays

我有以下数组:

"country": ["name", "units.size", "units.weight", "formats.date", "formats.number"]

我希望结果得到以下数组:

"country": ["name", "units", "formats"]

我只想获取没有嵌套属性的对象名称。

4 个答案:

答案 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)