javascript 通过对象数组中的属性值获取不同的对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 通过对象数组中的属性值获取不同的对象相关的知识,希望对你有一定的参考价值。

const array = [
	{id:3, name: 'Central Microscopy', fiscalYear: 2018},
	{id:5, name: 'Crystallography Facility', fiscalYear: 2018},
	{id:3, name: 'Central Microscopy', fiscalYear: 2017},
	{id:5, name: 'Crystallography Facility', fiscalYear: 2017},
];

// Array.from() method creates a new, shallow-copied Array instance from an array-like or iterable object.
// The find() method returns the value of the first element in the array that satisfies the provided testing function. Otherwise undefined is returned.
var result = Array.from(new Set(array.map( s => s.id)))
.map( id => {
	return {
		id: id,
		name: array.find(s => s.id === id).name
	};
});
result

// Can also be done in one loop only as the above is not efficient for huge array
var result = [];
const map = new Map();
for (const item of array) {
    if(!map.has(item.id)){
        map.set(item.id, true);    // set any value to Map
        result.push({
            id: item.id,
            name: item.name
        });
    }
}
console.log(result)

以上是关于javascript 通过对象数组中的属性值获取不同的对象的主要内容,如果未能解决你的问题,请参考以下文章

通过属性值从对象数组中获取JavaScript对象[重复]

通过选择多个属性值之一从数组中获取 JavaScript 对象 [关闭]

如何通过值获取 JavaScript 对象中的键?

如何通过Javascript中的属性值获取另一个对象内的对象值

怎么获取点击的数组对象

怎么获取数组里对象的某一项属性值