javascript - 当其键与特定字符串匹配时循环遍历 Javascript 对象值

标签 javascript object key

我有一个函数可以循环遍历对象的键,直到该键与输入中的关键字匹配。找到匹配项后,如何循环匹配的对象键值?

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);

最佳答案

您可以使用Array.flatMap并从obj返回匹配的单词value

我假设您想要返回整个来匹配

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"))

关于javascript - 当其键与特定字符串匹配时循环遍历 Javascript 对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53460759/

相关文章:

asp.net - 使用 Javascript 从标签复制文本

java - 如何使java机器人类类型撇号'

mysql - 我的脚本在重复键上有什么问题?

javascript - TinyMCE 是脏方法

javascript - 如何在 JavaScript 中将数组中的值添加到另一个数组中的值?

javascript - 在 Node.js 事件循环中获取(事件)计时器的计数

java - 如何在数组中存储整数数组的引用

Javascript 类仅显示其中一个对象

javascript - 如何从对象函数返回对象 - javascript?

php - 来自键的数组调用无法正常工作