У меня есть два списка. Первый - это список значений, а другой - список строк, в которых любая строка может содержать эти значения. Поэтому я выполняю итерацию над wordList и во внутреннем цикле, итерируя значения, когда когда-либо строка содержит значение, она должна возвращать значение.
const _ = require('lodash');
const valueList = ['abb','bcd','ghi'];
const wordList = ['ab','a','abc','abcde','bcef','aghif'];
const selectedValue = _.filter(wordList, (word) => {
return _.filter(valueList, (value) => {
return _.includes(word,value);
});
});
console.log('Printing matched value ${selectedValue}');
// Output should be bcd as 'bcd' as wordList contains this value and also it is first match.
Вам, вероятно, не понадобится lodash. Обычный JavaScript тоже может это сделать:
const valueList = ['abb','bcd','ghi'];
const wordList = ['ab','a','abc','abcde','bcef','aghif'];
const selectedValue = valueList.find( val => wordList.some(word=>word.includes(val)));
console.log('Printing matched value ${selectedValue}');
// Output should be bcd as 'bcd' as wordList contains this value and also it is first match.
Рабочий код с использованием lodash.
const _ = require('lodash');
const valueList = ['abb','bcd','ghi'];
const wordList = ['ab','a','abc','abcde','bcef','aghif'];
const selectedValue = _.filter(valueList, (value) => {
return _.some(wordList, (word) => {
return _.includes(word,value);
});
});
console.log('Printing matched value ${selectedValue}');