Come posso verificare se una stringa contiene elementi di un array? Voglio filtrare alcuni array se l'elemento ha una stringa. Si prega di vedere sotto il codice.Verifica se una stringa contiene un elemento in un array in JavaScript
var arr = ['banana', 'monkey banana', 'apple', 'kiwi', 'orange'];
function checker(value) {
var prohibited = ['banana', 'apple'];
for (var i = 0; i < prohibited.length; i++) {
if (value.indexOf(prohibited[i]) == -1) {
return true;
} else {
return false;
}
}
}
arr = arr.filter(checker);
console.log(arr);
Il risultato è [ 'apple', 'kiwi', 'orange' ]
. Il 'apple'
dovrebbe essere rimosso, ma non lo è.
Sopra codice filtrato solo "banana", non "mela". Ho molte parole chiave da filtrare. C'è un modo più semplice?
Non vedo jQuery menzionato nella domanda da OP, inoltre, alcune spiegazioni di "come funziona il codice" saranno utili. –
JQuery non è stato menzionato ma l'intervistatore ha richiesto di definire un modo più semplice in modo che potesse capire facilmente. Il codice funziona bene, perché l'ho provato. ** ogni ** funzione è simile a ** foreach **, quindi ognuno annidato risolverebbe il problema –
Sicuramente funzionerà, senza dubbio, ma non dovremmo fornire risposte jQuery a domande JavaScript. –