Как получить все значения в массиве объектов, если hashMap имеет одинаковое имя ключа - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть структура и код JSON, как показано ниже:

const villages = 
    {
    "lossesOccured":
        [
            {
                "type": "destroyed",
                "affectedOn": "humans",
                "quantity": 120,
                "reliefFund": 100000,
                "location": {
                    "district": "thanjavur",
                    "villageName": "madukkur",
                    "pincode": "614903"
                }
            },
            {
                "type": "physicalDamage",
                "affectedOn": "humans",
                "quantity": 250,
                "reliefFund": 50000,
                "location": {
                    "district": "thanjavur",
                    "villageName": "madukkur",
                    "pincode": "614903"
                }
            }
         ]
    }

const losses = villages.lossesOccured

const myMap = new Map()
const humanMap = new Map()

losses.forEach((data,index) => {
    var keys = data.affectedOn
    var objJSON = new Object();
    for (i = 0; i < keys.length; i++) {
        objJSON[keys] = data;
       }
       myMap.set(objJSON,data)
});

function extactLosses(){
    myMap.forEach(loss => {
        if(loss.affectedOn === "humans"){
            humanMap.set(loss.affectedOn,[loss])
     }

for (var [key, value] of humanMap) {
    console.log(key , value);
 }

Из приведенного выше кода, поскольку во многих элементах есть одинаковые имена ключей (disabledOn), map удаляет все дубликаты и печатает только один ввыход.Есть ли способ напечатать ключ в виде строки и значение в виде массива объектов, не исключая те, которые имеют одинаковое имя ключа.Заранее спасибо.

Вывод: Map

Ожидаемый вывод Expected

1 Ответ

0 голосов
/ 29 ноября 2018

Похоже, что вы просто хотите отфильтровать массив lostOccurned, чтобы вытащить те, которые были человеческими потерями.

const villages = 
    {
    "lossesOccured":
        [
            {
                "type": "destroyed",
                "affectedOn": "humans",
                "quantity": 120,
                "reliefFund": 100000,
                "location": {
                    "district": "thanjavur",
                    "villageName": "madukkur",
                    "pincode": "614903"
                }
            },
            {
                "type": "physicalDamage",
                "affectedOn": "humans",
                "quantity": 250,
                "reliefFund": 50000,
                "location": {
                    "district": "thanjavur",
                    "villageName": "madukkur",
                    "pincode": "614903"
                }
            },
            {
                "type": "physicalDamage",
                "affectedOn": "NOT humans",
                "quantity": 250,
                "reliefFund": 50000,
                "location": {
                    "district": "thanjavur",
                    "villageName": "madukkur",
                    "pincode": "614903"
                }
            }
         ]
    };
    
const humanLosses = villages.lossesOccured.filter(loss => loss.affectedOn == 'humans');

console.log(humanLosses);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...