让我们说我的数组看起来像这样:
something, something-ab, something-xy, something-xy-pq, apple, apple-banana, apple-something, potato, cat
我可以遍历所有元素并继续检查它们之后的所有元素的值,看看第一个值是否是子字符串,但我想知道是否有更聪明的方法将上面的数组转换为:
something, apple, potato, cat
感谢。
答案 0 :(得分:1)
试试这个
new Set(array.map(word => word.split('-')[0]))
这是如何运作的?
map
创建新阵列-
拆分并选择第一个元素Set
删除重复项答案 1 :(得分:0)
使用ES6,试试这个,
var array = ["something", "something-ab", "something-xy", "apple", "apple-banana", "apple-something", "potato", "cat"];
console.log([...new Set(array.map(x=> x.split('-')[1] || x.split('-')[0] ))])
答案 2 :(得分:0)