То, что вы экспортируете, это объект со свойствами. Вы можете циклически просматривать имена свойств объекта, используя цикл for-in
(который включает в себя все перечисляемые свойства объекта, как собственные, так и унаследованные), или используя массив из Object.keys
(который включает только собственные перечисляемые свойства). Тогда вы можете использовать includes
для каждого имени свойства.
Для вашего конкретного примера вы можете использовать Object.entries
(совсем недавно, но легко заполняется), так как вы можете захотеть значение; возвращает массив из [key, value]
массивов.
Кажется, вы используете только синтаксис уровня ES5, поэтому:
var tryThis;
Object.entries(tries).some(function(entry) {
if (entry[0].includes(searchQuery)) {
tryThis = entry[1];
return true;
}
});
... или, возможно, entry[0].toLowerCase().includes(searchQueryLower)
(где у вас есть searchQueryLower = searchQuery.toLowerCase()
), если вы хотите сопоставление без учета регистра.
Живой пример:
var tries = {
"Computer screen": 'phrase1',
"Table height": 'phrase2',
"Temperature": 'phrase3',
};
var searchQuery = "Table";
var searchQueryLower = searchQuery.toLowerCase();
var tryThis;
Object.entries(tries).some(function(entry) {
if (entry[0].toLowerCase().includes(searchQueryLower)) {
tryThis = entry[1];
return true;
}
});
console.log(tryThis);
В ES2015 + я бы использовал for-of
и деструктуризацию:
let tryThis;
for (const [key, value] of Object.entries(tries)) {
if (key.toLowerCase().includes(searchQueryLower)) {
tryThis = value;
break;
}
}
Живой пример:
const tries = {
"Computer screen": 'phrase1',
"Table height": 'phrase2',
"Temperature": 'phrase3',
};
const searchQuery = "Table";
const searchQueryLower = searchQuery.toLowerCase();
let tryThis;
for (const [key, value] of Object.entries(tries)) {
if (key.toLowerCase().includes(searchQueryLower)) {
tryThis = value;
break;
}
}
console.log(tryThis);
Конечно, вы можете вставить это в вызов reduce
(потому что любая операция с массивом может быть вставлена в вызов reduce
), но это ничего вам не даст (и вы не можете остановиться, когда вы найти то, что вы ищете). Точно так же это можно сделать с map
и filter
.