簡體   English   中英

如何從 JavaScript 中的對象數組中獲取唯一值,但按特定值過濾

[英]How to get unique values from an array of objects in JavaScript, but filtered by certain value

我想擴展前段時間提出的問題: 如何從 JavaScript 中的對象數組中獲取不同的值?

我的情況非常相似:我有以下內容:

var array = 
    [
        {"name":"Doctor", "age":17}, 
        {"name":"Doctor", "age":17},
        {"name":"Doctor", "age":18},
        {"name":"Nurse", "age":17}, 
        {"name":"Nurse", "age": 35}
        {"name":"Nurse", "age": 35}
    ]

能夠獲得所有不同年齡的數組的最佳方法是什么,但是對於選擇的專業,我得到一個結果數組:

doctor參數過濾: [17, 18]

nurse參數過濾: [17, 35]

使用數組函數

 const array = [{ "name": "Doctor", "age": 17 }, { "name": "Doctor", "age": 18 }, { "name": "Nurse", "age": 17 }, { "name": "Nurse", "age": 35 } ] console.log(getUniqueAges(array, 'Doctor')) console.log(getUniqueAges(array, 'Nurse')) function getUniqueAges(data, name) { return [...new Set(data.filter(datum => datum.name === name).map(datum => datum.age))] }

就像在您鏈接的答案中一樣,但是您在將數組傳遞給 Set 之前過濾(下面的示例按 name==="doctor 過濾)數組:

const data =     [
    {"name":"Doctor", "age":17}, 
    {"name":"Doctor", "age":18},
    {"name":"Nurse", "age":17}, 
    {"name":"Nurse", "age": 35}
];
const unique = [...new Set(data.filter(item => item.name === "doctor").map(item => item.age))]; // [ '17', '18']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM