У меня есть словарь строк для массивов строк: {"a":["b", "c"]}
. При индексировании в словаре я получаю массив строк, но проверка того, что любая строка в этом массиве всегда возвращает false. Вот код установки:Проверьте, есть ли строка в массиве внутри словаря
var dict = {
"first":["a", "b", "c"]
}
if("a" in dict["first"]){
// Never hits this line
console.log("Found a!");
}
Я довольно новыми для Javascript, так что я может быть что-то о настройке словаря объекта отсутствует, но это, кажется, довольно просто и у меня есть профессиональный опыт в нескольких языках C так что это довольно смущает, что это не работает. Что здесь не так?
В 'в' проверяет оператор для свойства, такие как' "первый" в dict' или ' "0" в dict.first'. Вы хотите проверить, есть ли массив [включает] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) элемент – Bergi
Предполагаемый «дублирующий» вопрос не тоже самое! – Dagrooms
@ Dagrooms: Как любой из [этих ответов] (http://stackoverflow.com/q/237104/1048572) не поможет вам проверить, есть ли строка в массиве? Является ли массив частью словаря, абсолютно не имеет значения для вашего вопроса. Или вы действительно спрашиваете, почему оператор 'in' не делает то, что, по вашему мнению, должен делать? – Bergi