javascript – 删除数组中重复字符串的最佳方法

我们设法创建了下面的脚本,以从数组中删除任何重复的字符串.但是,重要的是我们保持数组的顺序,以便在ng-repeat上角度循环通过它们.此外,我们希望其余元素保持相同的索引.

scope.feedback = _.map(_.pluck(item.possibleAnswers, 'feedback'), function (element, index, collection) {
    return collection.slice(0, index).indexOf(element) === -1 ? element : '';
});

上面的代码可行,但我们觉得必须有一个比这更简单的解决方案来解决我们的问题.有没有其他人有类似的问题,并提出了更好的解决方案?

解决方法:

变量减少https://jsfiddle.net/58z7nrfy/1/

var a = [1,2,3,1,2,3,2,2,3,4,5,5,12,1,23,4,1];

var b = a.reduce(function(p,c,i,a){
  if (p.indexOf(c) == -1) p.push(c);
  else p.push('')
  return p;
}, [])
console.log(b)

[1, 2, 3, “”, “”, “”, “”, “”, “”, 4, 5, “”, 12, “”, 23, “”, “”]

上一篇:javascript – 如何使用lodash过滤对象数组的数据


下一篇:javascript-映射带有奇怪json字段的json对象,使用lodash按数字索引