在 JavaScript 中使用数组时,通常必须确保值是唯一的。然而,处理零值时遇到错误可能会令人困惑。让我们探讨这个问题及其解决方案。
提供的代码片段使用 Array.prototype.getUnique 函数来消除重复项:
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; }
虽然此函数在大多数情况下工作完美,但它会出现问题当数组包含零时。为了解决这个问题,我们可以利用 JavaScript 1.6/ECMAScript 5 中引入的数组的本机过滤方法:
function onlyUnique(value, index, array) { return array.indexOf(value) === index; } // usage example: var a = ['a', 1, 'a', 2, '1']; var unique = a.filter(onlyUnique); console.log(unique); // ['a', 1, 2, '1']
在此解决方案中,onlyUnique 函数确保每个值在结果数组中仅出现一次。当与过滤器方法一起使用时,它可以有效地删除重复项,包括零。
以上是为什么从 JavaScript 数组中删除重复项失败并为零?的详细内容。更多信息请关注PHP中文网其他相关文章!