JavaScript 唯一数组

本教程将讨论如何使用 JavaScript 中的 Set()indexOf()filter() 函数从数组中获取唯一值。

使用 JavaScript 中的 Set() 函数从数组中获取唯一值

要从数组中获取唯一值,我们可以使用 Set() 函数,该函数使用现有数组中的唯一值创建一个新数组。例如,让我们创建一个具有重复值的数组,使用 Set() 函数创建一个具有唯一值的新数组,然后使用 JavaScript 中的 console.log() 函数在控制台上显示结果。请参考下面的代码。

var myArray = ['c', 'b', 'c', 2, 'b'];
var uniqueArray = [...new Set(myArray)]
console.log("Original Array = ",myArray);
console.log("Array with unique values = ",uniqueArray);

输出:

Original Array =  (5) ["c", "b", "c", 2, "b"]
Array with unique values =  (3) ["c", "b", 2]

在输出中,新数组不包含任何重复值。

使用 JavaScript 中的 indexOf() 函数从数组中获取唯一值

要从数组中获取唯一值,我们可以使用 indexOf() 函数和循环创建我们自己的函数,这将创建一个具有现有数组中唯一值的新数组。我们将使用数组将元素移动到新数组,并使用 indexOf() 函数来检查元素是否已经存在于新数组中。

如果元素不在新数组中,则将其移动到新数组中;否则,它将保留。例如,让我们创建一个具有重复值的数组,然后使用我们的函数创建一个具有唯一值的新数组,并使用 JavaScript 中的 console.log() 函数在控制台上显示结果。请参考下面的代码。

function uArray(array) {
    var out = [];
    for (var i=0, len=array.length; i<len; i++)
        if (out.indexOf(array[i]) === -1)
            out.push(array[i]);
    return out;
}
var myArray = ['c', 'b', 'c', 2, 'b'];
var uniqueArray = uArray(myArray);
console.log("Original Array = ",myArray);
console.log("Array with unique values = ",uniqueArray);

输出:

Original Array =  (5) ["c", "b", "c", 2, "b"]
Array with unique values =  (3) ["c", "b", 2]

在这里,新数组不包含任何重复值。

使用 JavaScript 中的 filter() 函数从数组中获取唯一值

要从数组中获取唯一值,我们可以使用 filter() 函数,该函数通过根据特定条件从现有数组中过滤值来创建一个新数组。filter() 函数将检查原始数组中存在的每个值。如果一个值是重复的,函数将删除它;否则,该值将被添加到新数组中。

例如,让我们创建一个具有重复值的数组,使用 filter() 函数创建一个具有唯一值的新数组,并使用 JavaScript 中的 console.log() 函数在控制台上显示结果。请参考下面的代码。

var myArray = ['c', 'b', 'c', 2, 'b'];
var uniqueArray = myArray.filter((val, ind, arr) => arr.indexOf(val) === ind);
console.log("Original Array = ",myArray);
console.log("Array with unique values = ",uniqueArray);

输出:

Original Array =  (5) ["c", "b", "c", 2, "b"]
Array with unique values =  (3) ["c", "b", 2]

正如你在此处看到的,新数组不包含任何重复值。