2017-09-22 4 views
1

J'ai deux listes. Le premier est une liste de valeurs et l'autre est une liste de chaînes où n'importe quelle chaîne peut contenir ces valeurs. Donc je suis itération sur wordList et dans la boucle interne itération sur les valeurs, quand jamais une chaîne contient une valeur, elle devrait retourner la valeur.La boucle imbriquée d'itération et la valeur correspondante retournée ne fonctionnent pas dans Node.js en utilisant le module lodash

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. 

Répondre

1

Vous n'aurez probablement pas besoin de lodash. JavaScript plaine peut le faire aussi:

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.

0

Code de travail en utilisant 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}`);

+0

votre extrait ne fonctionne pas –

+0

il retourne DCB, ghi – jyoti