繁体   English   中英

为什么当我检查循环中的字符串是否包含在字符串数组中时,所有字符串都为假?

Why when I check to see if a string in a loop is included in an array of strings do I get false for all of them?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试检查 state 是否包含在 state 字符串数组中,但由于某种原因,它总是等于 false。 我这样写对吗?

我试过使用下划线包含,但它做同样的事情

T.get('followers/list', {screen_name: ''}, function(err, data, response){
  let states = [
  "AK",
  "AL",
  "AR",
  "AS",
  "AZ",
  "CA",
  "CO",
  "CT",
  "DC",
  "DE",
  "FL",
  "GA",
  "GU",
  "HI",
  "IA",
  "ID",
  "IL",
  "IN",
  "KS",
  "KY",
  "LA",
  "MA",
  "MD",
  "ME",
  "MI",
  "MN",
  "MO",
  "MS",
  "MT",
  "NC",
  "ND",
  "NE",
  "NH",
  "NJ",
  "NM",
  "NV",
  "NY",
  "OH",
  "OK",
  "OR",
  "PA",
  "PR",
  "RI",
  "SC",
  "SD",
  "TN",
  "TX",
  "UT",
  "VA",
  "VI",
  "VT",
  "WA",
  "WI",
  "WV",
  "WY"
]
  _.each(data, loc => {
    _.each(loc, data => {
      if(data.location){
        var statesyes = states.includes(JSON.stringify(data.location.split(', ').pop()));
        console.log(statesyes);
      };
    })
  })
})

例如,我应该对其中一些恢复为真,对另一些恢复为假,这就是目标。 但我只会变得虚假。

false
"South Africa"
false
"South Africa"
false
"The dark part of the web"
false
"MI"
false
"FL"
false
"United States"
false
"WV"
false
"TX"
false
"Iowa"
false
"IA"
false
"MN"
false
"IA"
false
"Big Sky Country"
false
"USA"
false
"MO"
false
"IA"
false

我对他们所有人都是假的。

1 个回复

对从data.location.split(', ').pop()返回的值调用JSON.stringify意味着您正在与引用的文本进行比较。

JSON.stringify("Hello") -> "\"Hello\""

删除对JSON.stringify的调用

2 如何检查字符串是否包含在数组中?

在我的PostgreSQL数据库( version: 11.4 )中,我有一个名为table_1的表,它只有一列。 此列的数据类型是字符串数组 ( _varchar )。 另外,我有一个名为table_2的表,它具有这样的结构: 如何检查字符串是否包含在数组中? 就我而言,我尝试检查tabl ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM