我有两个JS数组,如下所示:
If Condition Then Do_Something Else Do_Something_Else
获取物品的顺序:
$order = [];
$a = ['about','about','portfolio','contact'];
输出:[1,2,3,4]
但我想过滤掉重复项目,并获得[1,3,4]
之类的订单另一个例子
for($i=0;$i<$a.length;$i++){
$order.push($i+1);
}
console.log($order);
我想得到像[1,4,5]
这样的订单我不确定我是否解释清楚。 任何人都可以给我一个建议吗?
答案 0 :(得分:3)
可以使用Set
存储唯一值,Array#map()
可以根据Array#indexOf()
const arr = ['about', 'about', 'about', 'portfolio', 'contact', 'contact']
const res = [...new Set(arr)].map(v => arr.indexOf(v) + 1)
console.log(res)
&#13;
答案 1 :(得分:0)
您可以使用reduce来完成这项工作。
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)
&#13;