Вернуть строку, если подстрока известна - PullRequest
0 голосов
/ 25 января 2020

Я хочу перебрать объект с ключами объекта. Имея один ввод (подстроку) от пользователя, я хочу получить всю строку для выполнения итерации.

Мой объект:

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

Если пользователь вводит подстроку «строка» Я хочу получить всю строку «Я строка», и в другом случае, если пользователь вводит подстроку «второй» или «я второй», я хочу иметь «Я второй» и так далее ...

Моя цель - автоматически получить значение объекта с точной строкой:

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

1 Ответ

0 голосов
/ 25 января 2020

Вы можете создать функцию для .find() на Object.keys() выбранного объекта и вернуть строку первого совпадения - Затем можно использовать возвращаемое значение в качестве средства доступа к свойству

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