首页 >web前端 >js教程 >如何有效地从 JavaScript 数组中删除重复值(包括零)?

如何有效地从 JavaScript 数组中删除重复值(包括零)?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-22 07:49:13456浏览

How Can I Efficiently Remove Duplicate Values from a JavaScript Array, Including Zeros?

删除重复项以从 JavaScript 数组中获取唯一值

在寻求确保数值数组中元素的唯一性时,编码人员经常会偶然发现以下代码片段:

Array.prototype.getUnique = function() {
  var o = {}, a = [], i, e;
  for (i = 0; e = this[i]; i++) {o[e] = 1};
  for (e in o) {a.push (e)};
  return a;
}

虽然此脚本在大多数情况下都能完美运行,但当数组包含为零,留下改进的空间。为了解决这个问题,让我们深入研究一下与 Stack Overflow 上类似但有弹性的脚本的比较:

function onlyUnique(value, index, array) {
  return array.indexOf(value) === index;
}

// Example usage:
var a = ['a', 1, 'a', 2, '1'];
var unique = a.filter(onlyUnique);

console.log(unique); // ['a', 1, 2, '1']

在 JavaScript 1.6(或 ECMAScript 5)中,filter 方法提供了一种更有效的方法来遍历数组并提取唯一值:

  • 回调函数onlyUnique,验证元素是否在数组中第一次出现匹配其位置。
  • 通过使用此条件过滤数组,我们将唯一元素隔离到一个新数组中,如示例中所示。

通过将此更新的方法合并到您的代码中,您可以有效地确保您的 JavaScript 数组不包含冗余元素,即使存在零也是如此。

以上是如何有效地从 JavaScript 数组中删除重复值(包括零)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn