从一个对象数组中提取特定键的值,并返回一个去重后的新数组。
代码展示
// 定义一个函数,名为 mapdata,接受两个参数:arr 和 key
function mapdata(arr, key) {
// 使用 map() 方法遍历输入的数组 arr
// map() 方法返回一个新数组,其结果是数组中的每个元素调用一个提供的函数后返回的结果
let keyarr = arr.map(obj => obj[key]);
// 在 map() 函数中,传入一个对象作为参数 obj,返回 obj[key] 的值
// 这样就得到了一个新的数组 keyarr,其中包含了所有对象中指定键的值
// 注意:这里假设 arr 中的每个对象都包含 key 键
// 使用 Set 对象对 keyarr 进行去重
// Set 是一种数据结构,它只存储唯一的值,相同的值会被自动合并
// 通过扩展运算符(...)将 Set 对象转换回数组
return [...new Set(keyarr)];
}
使用案例
let data = [
{ id: 1, name: "Alice" },
{ id: 2, name: "Bob" },
{ id: 3, name: "Alice" },
{ id: 4, name: "Charlie" }
];
let names = mapdata(data, "name"); // ["Alice", "Bob", "Charlie"]