Почему, когда я проверяю, включена ли строка в цикл в массив строк, я получаю false для всех них? - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь проверить, включено ли состояние в массив строк состояния, но по какой-то причине оно всегда приравнивается к ложному.Я пишу это правильно?

Я пытался использовать подчеркивание, но он делает то же самое

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 Ответ

2 голосов
/ 19 сентября 2019

Вызов JSON.stringify для значения, возвращенного из data.location.split(', ').pop(), означает, что вы сравниваете текст в кавычках.

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

Удалить вызов JSON.stringify

...