首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何过滤掉JS Array中的repeat元素?

如何过滤掉JS Array中的repeat元素?
EN

Stack Overflow用户
提问于 2018-06-04 03:00:50
回答 2查看 84关注 0票数 -3

我有两个JS数组,如下所示:

代码语言:javascript
复制
$order = [];
$a = ['about','about','portfolio','contact'];

获取项目的顺序:

代码语言:javascript
复制
for($i=0;$i<$a.length;$i++){
    $order.push($i+1);
}
console.log($order);

输出: 1,2,3,4

但是我想过滤掉重复的项目,得到像1,3,4这样的顺序

另一个例子

代码语言:javascript
复制
$a = array('about','about','about','portfolio','contact','contact');

我想要像1,4,5这样的订单

我不确定我是否解释清楚了。有人能给我一个建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-04 03:10:24

可以使用Set存储唯一值,使用Array#map()根据Array#indexOf()返回位置

代码语言:javascript
复制
const arr = ['about', 'about', 'about', 'portfolio', 'contact', 'contact']

const res = [...new Set(arr)].map(v => arr.indexOf(v) + 1)

console.log(res)

票数 3
EN

Stack Overflow用户

发布于 2018-06-04 03:06:25

你可以使用reduce来完成这项工作。

代码语言:javascript
复制
let order = [];
let a = ['about','about','portfolio','contact'];

a.reduce((acc, ele, index) => {
  if (acc.indexOf(ele) === -1) {
    acc.push(ele);
    order.push(index + 1)
  }
  return acc;
}, [])

console.log(order)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50669938

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档