Как получить доступ к многозначным словарям в javascript? - PullRequest
0 голосов
/ 19 июня 2020

У меня есть следующий словарь:

{1:['a&b','b-c','c-d'],2:['e orf ','f-k-p','g']}

Я хочу напечатать ключ и значения из этого словаря Я пробовал следующий код:

for (var key in dictionary) {
    // check if the property/key is defined in the object itself, not in parent
    if (dictionary.hasOwnProperty(key)) {           
        console.log(key, dictionary[key]);
    }
}

Я просто получаю случайные числа.Как я мог это решить? Мой вывод:

key:34639values:mkey:34640values:akey:34641values:tkey:34642values:hkey:34643values:ekey:34644values:mkey:34645values:akey:34646values:tkey:34647values:ikey:34648values:ckey:34649values:skey:34650values: key:34651values:pkey:34652values:rkey:34653values:okey:34654values:bkey:34655values:lkey:34656values:ekey:34657values:mkey:34658values:

Я хочу выводить как:

keys: 1,2
values: ['a&b','b-c','c-d'],['e orf ','f-k-p','g']

var dictionary = {1:['a','b','c'],2:['e','f','g']}
for (var key in dictionary) {
    // check if the property/key is defined in the object itself, not in parent
    if (dictionary.hasOwnProperty(key)) { 
        console.log(`key: `, key);
        console.log(`values: `, dictionary[key]);
    }
}

Редактировать: Фактически словарь воспринимается как строка. Как я могу привести его к словарю?

Ответы [ 4 ]

0 голосов
/ 19 июня 2020

Я создал эту утилиту ниже для выполнения ваших требований.

let data = {1:['a&b','b-c','c-d'],2:['e orf ','f-k-p','g']}

const keys = Object.keys(data)
const values = Object.values(data)
console.log(`Keys: ${keys.join()}`)

let result = values.reduce((result, value) => { result.push(JSON.stringify(value)); return result}, []).join()
console.log(`Values: ${result}`)

Надеюсь, это поможет.

0 голосов
/ 19 июня 2020
var dictionary = {1:['a','b','c'],2:['e','f','g']}
var keys = [];
var values = [];
for (var key in dictionary) {
    // check if the property/key is defined in the object itself, not in parent
    if (dictionary.hasOwnProperty(key)) {
        keys.push(key);
        values.push(dictionary[key]);
    }
}

console.log(`keys: `, keys);
console.log(`values: `, values);
0 голосов
/ 19 июня 2020

Вы можете получить ключи объекта с помощью

Object.keys(dictionary)

, что приведет к: массив из двух элементов: ["1", "2"].

Когда у вас есть ключ объекта, вы можете получить его содержимое, используя простой для l oop:

for(let key of Object.keys(dictionary))
    console.log(dictionary[key])

результат:

["a", "b", "c"]
["e", "f", "g"]

Не забывайте около console.table(dictionary). Для простых структур таблиц это может помочь с отображением.

0 голосов
/ 19 июня 2020

Я запустил ваш код и вот результат:

enter image description here

...