如果知道子字符串,则返回一个字符串

时间:2020-01-25 20:03:03

标签: javascript string include iteration substring

我想用对象键遍历对象。通过用户的单个输入(子字符串),我希望获得整个字符串进行迭代。

我的对象

const obj = {
  "I am string": "Hello World",
  "I am second": "foo bar"
}

如果用户键入子字符串“ string”,我想得到整个字符串“ I am string”,而在另一种情况下,如果用户键入子字符串“ second”或“ am second” “我第二”,依此类推...

我的目标是使用精确的字符串自动达到对象的值:

obj["I am string"] // "Hello World"

1 个答案:

答案 0 :(得分:0)

您可以创建一个函数来对所选对象的.find()执行Object.keys(),然后返回 first 匹配的字符串-然后可以使用return值作为property accessor

const data = {
  "I am string": "Hello World",
  "I am second": "foo bar"
}

function findKey (searchTerm, objToSearch) {
  return Object.keys(objToSearch).find(key => key.includes(searchTerm));  
}

console.log(findKey('string', data));
console.log(findKey('second', data));

console.log(data[findKey('string', data)]);

如果仅将其用于一个对象,则可以为自己保存一个参数,而只需硬编码对象名称,而不用objToSearch

const findKey = (searchTerm) => Object.keys(obj).find(key => key.includes(searchTerm));