仅返回包含特定字符的元素

时间:2017-01-17 21:12:44

标签: javascript

我需要检查数组的每个元素是否有某个字母。如果元素包含这个字母,它应该保留在数组中,如果不包含它应该被删除。

目前我能够删除元素,如果它们是准确的,但不知道如何检查每个元素的每个索引。

var exampleList = ['alpha', 'beta','dog']

exampleList.filter(function(word) {
    return (word == 'dog');
})

我的最终目标是这样的。

letterToInclude = 'a'
var exampleList = ['alpha', 'beta','dog', 'mouse']

exampleList.filter(function(word) {
    return (word == letterToInclude);
})
// returned values = ['alpha', 'beta']

4 个答案:

答案 0 :(得分:3)

您可以使用==查看indexOf中是否letterToInclude,而不是word。{/ p>

letterToInclude = 'a'
var exampleList = ['alpha', 'beta','dog', 'mouse']

exampleList.filter(function(word) {
    return (word.indexOf(letterToInclude) > -1);
});

indexOf返回letterToInclude中出现word的位置;如果找不到,indexOf将返回-1

我没有使用word.includes(letterToInclude)的原因仅用于兼容性目的。 includes相当新,isn't completely supported

答案 1 :(得分:1)

您可以使用indexOf()检查每个元素是否包含特定字母。



var letterToInclude = 'a'
var exampleList = ['alpha', 'beta', 'dog', 'mouse']

exampleList = exampleList.filter(function(word) {
  return word.indexOf(letterToInclude) != -1
})

console.log(exampleList)




使用String#includes()的ES6解决方案,您也可以使用match()test(),但这些解决方案采用正则表达式。

exampleList.filter(word => word.includes(letterToInclude))

答案 2 :(得分:0)

尝试使用indexOf



letterToInclude = 'a'
var exampleList = ['alpha', 'beta','dog', 'mouse']

console.log(exampleList.filter(function(word) {
    return ~(word.indexOf(letterToInclude));
}));




答案 3 :(得分:0)

它与Unicode字符一起使用很好:

var lettersToInclude = 'aa'
var exampleList = ['a', 'aa','❤✓☀a★bAb', 'bbaa', 'aa☂']

var r = exampleList.filter(function(word) {
    return (word.indexOf(lettersToInclude) > -1);
});

console.log(r);