Сравните два хеш-карты в JavaScript

1

Я пытаюсь найти решение для сравнения двух hashmaps в javascript, но у меня есть трудности.

Это моя ситуация, у меня есть hashmap, состоящий из значения key + value в виде массива.

Пример: 125: [1, 2, 3]

И затем я беру эти данные, и я сравниваю их с другим хэшмапом такого типа.

Пример:

123 : [[1 , 1 , 1][2 , 8.7 , 10]]
124 : [[0 , 0, 5.4][3 , 4 , 5][7, 9.1 , 6]
125 : [[1 , 2 , 3][0.4 , 4 , 8]]

Второй hashmap похож на первый, но его значение может содержать массив из N массивов. Цель: проанализировать второй хэш файл с моим первым хэшмапом и, во-первых, найти, являются ли ключи похожими, тогда, если он найдет значение первого в массиве второго, он должен вернуть "ОК",

Например, в этом случае: он вернет "OK" потому что мы можем заметить, что key 125 и ее value в первой хэш-карте включены в 125: [[1, 2, 3][0.4, 4, 8]]

Я должен не только проверять значения, но и клавиши

Вот еще один пример:

Обратите внимание, что первая хэш-карта всегда имеет 1 данные (ключ + значение) 1 ключ + 1 массив из 1 измерения

1-й hashmap: var hashmap1 = { 124: [ 1,1,1] }

2-й хэш файл:

    var hashmap2 = { 
        123 : [0,0,0],
        124 : [[ 0,1,1][0,0,1][1,1,1]]
        125 : [9 , 8 , 7]
    }

Результат: "ОК", потому что 124: [1,1,1] находится в 124 : [[0,1,1] [0,0,1] [1,1,1] ].

  • 0
    Итак, вы хотите увидеть, действительно ли ключи из первого hashmap находятся во втором, а затем проверить, совпадают ли их ключи?
  • 0
    точно так же, как в этом примере: 125: [1, 2, 3] первого хэш-карты включается в 125: [[1, 2, 3] [0.4, 4, 8]] .. Как только он нашел ключ, он проверяет если его значения одинаковы и возвращают «ОК», если он делает, или «НЕТ», если это не так
Показать ещё 2 комментария
Теги:

1 ответ

0

Простой способ сравнения массивов состоит в том, чтобы укрепить их и посмотреть, существует ли образец в другой строке

let sample = {
  '124': [9,9,9], // expect no match .. key exists but array differs
  '125': [1, 2, 3], //expect match
  '555':[8,8] // expect no match ... key doesn't exist
}

let data = {
  '123': [ [1, 1, 1],[2, 8.7, 10]],
  '124': [[0, 0, 5.4],[3, 4, 5],[7, 9.1, 6]],
  '125': [[1, 2, 3],[0.4, 4, 8]]
}

let res = Object.keys(sample).map(key => {
   let msg = 'OK';
   if(!data.hasOwnProperty(key)){
      msg= 'No Match';
   }else{
      let arrayMatch = JSON.stringify(data[key]).indexOf(JSON.stringify(sample[key])) >-1;
      msg = !arrayMatch ? 'No Match' : msg;
   }
   return key + ' : ' +  msg;
});

console.log(res.join('\n'))
  • 0
    Я думаю, что это все, попробую позже. Теперь я нахожусь на моем телефоне ... Но мой первый hashmap включает только 1 ключ и 1 значение ... это не будет проблемой?
  • 0
    Непонятно что вы спрашиваете
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню