у меня есть два массива;один с подстрокой, а другой с объектами.
Я хотел бы получить массив объектов, где эти объекты содержат любую из подстрок в массиве substrings.
До сих пор я пытался использоватьfilter
и findIndex
. Каждый подход работает, если подстрока идентична. В этом случае даже indexOf
не работал. Я не парень по javascript, поэтому, вероятно, я делаю что-то не так.
Сценарий
var strings = ['12', 'sv', 'eli', '23', '34'];
var data = [
{
a: 349531284734,
b: "sv123eippppppeli",
c: "aaabbbccc"
},
{
a: 1111123333312,
b: "ccccccccccccs2222",
c: "aaabbbccc"
},
{
a: 2222234,
b: "elllllllla",
c: false
},
];
// attempt 1
var results = data.filter(arr =>
Object.keys(arr).some(key => {
return String(arr[key]).toLowerCase().includes(strings) // or indexOf
})
);
// attempt 2 with only one data index
var obj = Object.values(data[0]);
var results = strings.some(s => obj.includes(s)) // or indexOf or findIndex;
Объяснение
ВВ этом примере с указанными подстроками только data[0]
является совпадением, поскольку оно содержит хотя бы одну из подстрок в массиве strings
.
Как я могу заставить эту работу работать без использования цикла for?
Спасибо