JavaScript 如何从对象数组中获取不重复的值

JavaScript 如何从对象数组中获取不重复的值

在本文中,我们将尝试通过一些示例来理解如何从JavaScript中的对象数组中获取不重复的值。

先决条件: JavaScript中的对象数组

示例:

Input:  
[  
    { name: "Ram", age: 17 },  
    { name: "Shyam", age: 17 },  
    { name: "Mohan", age: 30 },  
]  
Output: [17, 30]  

解释:

  • 从输入中,即对象数组中,选择可能包含重复值的任何键,无论是作为另一个对象的键还是作为对象本身的键。
  • 从数组中不同对象的同一键中选择不同的值。

在理解了上面示例中所需的任务之后,让我们快速看一下以下方法,通过这些方法我们可以理解并解决上述任务。

  • 使用 map() 和 filter() 方法
  • 使用 Set() 构造函数
  • 使用 map() 、 set() 和 from() 方法

方法1: 使用 map() 和 filter() 方法

  • 在这种方法中,我们将使用多个函数,包括 map() 和 filter() 方法,这些方法都在我们的帮助方法中,参数是包含对象数组。
  • 使用 map() 方法,我们将迭代对象数组,使用 filter() 方法将过滤掉不是重复值的值。

示例: 下面是上述方法的实现。

JavaScript

let employees_details = [
    { name: "Ram", age: 17 },
    { name: "Shyam", age: 17 },
    { name: "Mohan", age: 30 },
];
 
let desired_output = (employees_details) => {
    let unique_values = employees_details
        .map((item) => item.age)
        .filter(
            (value, index, current_value) => current_value.indexOf(value) === index
        );
    return unique_values;
};
 
console.log(desired_output(employees_details));

输出:

[ 17, 30 ]  

方法2:

  • 在这种方法中,我们将使用JavaScript中提供的Set()构造函数,它能帮助我们存储非重复的值。
  • 存储非重复值后,我们将以数组的形式返回这些值作为输出。

    示例: 下面是上述方法的实现。

Javascript

let employees_details = [
    { name: "Ram", age: 17 },
    { name: "Shyam", age: 17 },
    { name: "Mohan", age: 30 },
];
 
let desired_output = (employees_details) => {
    let unique_values = [
        ...new Set(employees_details.map((element) => element.age)),
    ];
    return unique_values;
};
 
console.log(desired_output(employees_details));

输出:

[ 17, 30 ]  

方法3:使用 map()、set()和from() 方法

  • 遍历数组并获取该属性的值。
  • 使用 set() 存储这些值。
  • 将 set() 转换为数组以获取唯一的值。

示例:

JavaScript

let employees_details = [
    { name: "Ram", age: 17 },
    { name: "Shyam", age: 17 },
    { name: "Mohan", age: 30 },
];
 
const propertyValues = 
      employees_details.map(obj => obj['name']);
const uniqueValuesSet = 
      new Set(propertyValues);
const distinctValues =
       Array.from(uniqueValuesSet);
console.log(distinctValues);

输出

[ 'Ram', 'Shyam', 'Mohan' ]

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程