Перебирайте значения объекта Javascript, когда его ключ соответствует определенной строке - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть функция, которая перебирает ключи Объекта, пока ключ не совпадает с ключевым словом во входных данных.После нахождения соответствия, как я могу затем пройти через соответствующие ключи ключей объекта?

let obj = {
  music: {
    "do you like music": "Yes I do",
    "what music do you like": "Jazz"
  },

  sports: {
    "Do you like sports": "Yes"
  }
};

let input = "i like music";

function run(input) {
  let newStr = input.split(' ');
  let key = Object.keys(obj);
  key.forEach((key) => {
    newStr.forEach((str) => {
      if (key === str) {
        console.log(key)
      }
    });
  });
};

run(input);

1 Ответ

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

Вы можете использовать Array.flatMap и вернуть совпадающее слово value из obj

Я предполагал, что вы захотите вернуть целое value для сопоставления key

let obj = {
  	music:{
    	"do you like music":"Yes I do",
      "what music do you like": "Jazz"
    },
    
    sports:{
    	"Do you like sports": "Yes"
    }
};

function run(i) {
  return i.split(' ').flatMap(d => obj[d] || [])[0]
}

console.log(run("i like music"))

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