JavaScript 从数组中获取所有非唯一值

JavaScript 从数组中获取所有非唯一值

给定一个 JavaScript 数组,任务是找到数组中的所有非唯一元素。以下是从数组中获取所有非唯一值的几个示例。

以下是从数组中获取所有非唯一值的方法:

  • 使用 Array Slice() 方法
  • 使用 for 循环
  • 使用 filter() 方法

方法1:使用 Array Slice() 方法

该方法返回一个新的数组对象,其中包含所选元素。此方法从指定的 start 参数开始获取元素,直到不包括给定的 end 参数。

语法:

array.slice(start, end)  

参数:

  • start:这个参数是可选的。它指定了从哪个整数开始选择(索引从0开始)。负数用于从数组结尾选择。如果不使用,则起作用相当于”0″。
  • end:这个参数是可选的。它指定从哪个整数结束选择。如果不使用,则从开始到数组末尾的所有元素都会被选择。负数用于从数组结尾选择。

示例:

这个示例首先对数组进行排序,然后逐个选择非唯一元素。

let arr = [89, 89, 11, 2, 3, 4, 2, 4, 5, 7];
let sort_arr = arr.slice().sort();
let res = [];
 
function gfg_Run() {
    for (let i = 0; i < sort_arr.length - 1; i++) {
        if (sort_arr[i + 1] == sort_arr[i]) {
            res.push(sort_arr[i]);
        }
    }
    console.log("Non Unique values are: " + res);
}
 
gfg_Run();

输出

Non Unique values are: 2,4,89

方法2:使用for循环

在这种方法中,先创建一个字典,并存储每个元素的频率。然后,如果它们的频率大于1,则选择该元素。

示例:

let arr = [89, 89, 11, 2, 3, 4, 2, 4, 5, 7];
 
function gfg_Run() {
    let len = arr.length,
        output = [],
        count = {};
 
    for (let i = 0; i < len; i++) {
        let item = arr[i];
        count[item] = count[item] >= 1 ? count[item] + 1 : 1;
        if (count[item] === 2) {
            output.push(item);
        }
    }
    console.log("Non Unique Values: " + output);
}
 
gfg_Run();

输出

Non Unique Values: 89,2,4

方法3:使用filter()方法

示例: 这个示例使用filter方法,它检查元素的索引是否变化,并返回元素。

let arr = [89, 89, 11, 2, 3, 4, 2, 4, 5, 7];
 
function gfg_Run() {
    let output = arr.filter(
        (item, index) => arr.indexOf(item) !== index);
 
    console.log("Non-Unique values are = " + output);
}
 
gfg_Run();

输出

Non-Unique values are = 89,2,4

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程