在数组javascript中搜索字符串

尼克斯

我正在寻找一个简单的函数来检查特定的字符串是否在我的数组内。

function checkRegion(departement){
    var region = '';

    if(alsace.indexOf(departement) != -1)
    {
        region = "alsace";
    }
    if(aquitaine.indexOf(departement) != -1){
        region = "aquitaine";
    }
    if(auvergne.indexOf(departement) != -1){
        region = "auvergne";
    }
    if(basseNormandie.indexOf(departement) != -1){
       region = "basse-normandie";
    }
    if(iledefrance.indexOf(departement) != -1){
        region = "ile-de-france";
    }else{
        region = 'undennnnnfined';
    }

    return region;
};

有什么办法吗?

谢谢

天使Politis

您的问题在于使用连续if语句而没有将它们链接在一起以进行完整的检查。

按照您的方式进行操作,代码实际上完全忽略了所有if语句,但是最后一个语句

因此,如果iledefrance.indexOf(departement) != -1给出false,它将始终在内部执行代码else,这意味着它将被设置region = 'undennnnnfined'


笔记:

在代码中,我用代替!= -1~因为它使代码更简洁。从本质上说,它会转换-10,即false

如果您不熟悉,请务必查看MDN的文档以了解更多信息。


1选项

尝试按以下格式if语句链接在一起if/else if/else

function checkRegion(departement){
    var region = '';

    if(~alsace.indexOf(departement)) {
        region = "alsace";
    }
    else if(~aquitaine.indexOf(departement)) {
        region = "aquitaine";
    }
    else if(~auvergne.indexOf(departement)) {
        region = "auvergne";
    }
    else if(~basseNormandie.indexOf(departement)) {
        region = "basse-normandie";
    }
    else if(~iledefrance.indexOf(departement)) {
        region = "ile-de-france";
    }
    else{
        region = 'undennnnnfined';
    }
    return region;
};

2选项

创建两个数组:

  • 一个应该包含您的区域数组(alsaceaquitaine等等)&
  • 还有一个包含数组名称作为字符串的名称,以便您可以根据被评估为true的数组返回适当的字符串。

代码:

function checkRegion(departement) {
    var
       regions = [alsace, aquitaine, auvergne, basseNormandie, iledefrance],
       regionsNames = ["alsace", "aquitaine", "auvergne", "basseNormandie", "iledefrance"];

    for (var i = 0; i < regions.length; i++) {
        if (~regions[i].indexOf(departement)) {
            return regionsNames[i];
        }
    }
    return "undennnnnfined"; // If the 'for' loop doesn't return anything, it's false.
};

演示:

  • 第一个解决方案的工作演示这里
  • 使用第二种解决方案的工作演示这里

片段:

  • 与1代码段ST溶液:

function checkRegion(departement){
    var region = '';

    if(~alsace.indexOf(departement)) {
        region = "alsace";
    }
    else if(~aquitaine.indexOf(departement)) {
        region = "aquitaine";
    }
    else if(~auvergne.indexOf(departement)) {
        region = "auvergne";
    }
    else if(~basseNormandie.indexOf(departement)) {
       region = "basse-normandie";
    }
    else if(~iledefrance.indexOf(departement)) {
        region = "ile-de-france";
		}
    else{
        region = 'undennnnnfined';
    }
    return region;
};

var
   alsace = ["Strasbourg", "Colmar"],
   aquitaine = ["Gironde", "Landes", "Dordogne", "Pyrenees-Atlantiques", "Lot-et-Garonne"],
   auvergne = [],
   basseNormandie = [],
   iledefrance = [];
   
alert(checkRegion("Strasbourg"));

  • 片段与2溶液:

function checkRegion(departement) {
    var
       regions = [alsace, aquitaine, auvergne, basseNormandie, iledefrance],
       regionsNames = ["alsace", "aquitaine", "auvergne", "basseNormandie", "iledefrance"];

    for (var i = 0; i < regions.length; i++) {
        if (~regions[i].indexOf(departement)) {
            return regionsNames[i];
        }
    }
    return "undennnnnfined"; // If the 'for' loop doesn't return anything, it's false.
};

var
   alsace = ["Strasbourg", "Colmar"],
   aquitaine = ["Gironde", "Landes", "Dordogne", "Pyrenees-Atlantiques", "Lot-et-Garonne"],
   auvergne = [],
   basseNormandie = [],
   iledefrance = [];
   
alert(checkRegion("Strasbourg"));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在搜索字符串中包含打字稿/ JavaScript中的通配符的字符串时,在数组上进行搜索?

来自分类Dev

在数组中搜索子字符串

来自分类Dev

如何在数组中搜索字符串

来自分类Dev

ActionScript 3在数组中搜索字符串

来自分类Dev

在数组列表中搜索子字符串

来自分类Dev

在数组中搜索字符串并返回位置

来自分类Dev

Javascript:在数组中搜索字符串,然后计算出现次数

来自分类Dev

在数组中搜索Ruby中的字符串及其子字符串

来自分类Dev

Javascript在数组中返回“空”字符串

来自分类Dev

如何在数组字符串中搜索非字母字符?

来自分类Dev

如何在数组字符串中搜索非字母字符?

来自分类Dev

Javascript搜索数组中的部分字符串

来自分类Dev

Javascript搜索数组中的部分字符串

来自分类Dev

Javascript搜索替换数组中的字符串

来自分类Dev

代码行为异常:尝试在数组中搜索字符串并打印每行的内容

来自分类Dev

实时搜索json以查看给定的字符串是否在数组中

来自分类Dev

parse.com在数组中搜索部分字符串

来自分类Dev

如何在数组列中搜索多个字符串

来自分类Dev

在数组中搜索字符串并将其添加为类

来自分类Dev

代码行为异常:尝试在数组中搜索字符串并打印每行的内容

来自分类Dev

使用 for-each 循环在数组列表中搜索字符串

来自分类Dev

在字符串数组中搜索字符串的函数

来自分类Dev

从字符串数组中搜索字符串

来自分类Dev

在字符串数组中搜索字符串

来自分类Dev

在PHP数组中搜索字符串

来自分类Dev

从数组中搜索字符串的文件

来自分类Dev

C ++在数组或字符串中插入字符

来自分类Dev

C ++在数组或字符串中插入字符

来自分类Dev

在数组中,获取以特定字符开头的字符串

Related 相关文章

  1. 1

    在搜索字符串中包含打字稿/ JavaScript中的通配符的字符串时,在数组上进行搜索?

  2. 2

    在数组中搜索子字符串

  3. 3

    如何在数组中搜索字符串

  4. 4

    ActionScript 3在数组中搜索字符串

  5. 5

    在数组列表中搜索子字符串

  6. 6

    在数组中搜索字符串并返回位置

  7. 7

    Javascript:在数组中搜索字符串,然后计算出现次数

  8. 8

    在数组中搜索Ruby中的字符串及其子字符串

  9. 9

    Javascript在数组中返回“空”字符串

  10. 10

    如何在数组字符串中搜索非字母字符?

  11. 11

    如何在数组字符串中搜索非字母字符?

  12. 12

    Javascript搜索数组中的部分字符串

  13. 13

    Javascript搜索数组中的部分字符串

  14. 14

    Javascript搜索替换数组中的字符串

  15. 15

    代码行为异常:尝试在数组中搜索字符串并打印每行的内容

  16. 16

    实时搜索json以查看给定的字符串是否在数组中

  17. 17

    parse.com在数组中搜索部分字符串

  18. 18

    如何在数组列中搜索多个字符串

  19. 19

    在数组中搜索字符串并将其添加为类

  20. 20

    代码行为异常:尝试在数组中搜索字符串并打印每行的内容

  21. 21

    使用 for-each 循环在数组列表中搜索字符串

  22. 22

    在字符串数组中搜索字符串的函数

  23. 23

    从字符串数组中搜索字符串

  24. 24

    在字符串数组中搜索字符串

  25. 25

    在PHP数组中搜索字符串

  26. 26

    从数组中搜索字符串的文件

  27. 27

    C ++在数组或字符串中插入字符

  28. 28

    C ++在数组或字符串中插入字符

  29. 29

    在数组中,获取以特定字符开头的字符串

热门标签

归档