2016-07-30 2 views
-1

У меня есть следующий Javascript код:Как сравнить массив в строку и увеличивает переменный в результате

var test = ['hello', 'my', 'name']; 

    for (var i = 0; i < data.length; i++) { 
    if (test === "name") { 
     //In the array! 
     ct = "found"; 
    } else { 
     ct = "not found"; 
    } 
    }; 

Здесь я пытаюсь Переберите количество массивов в data, скажем 100 результатов, а затем определить var test содержит строку массива 'name'.

Я запустил это и распечатал результат ct в журнале консоли и каждый раз распечатывает ct как «не найден».

Точка зрения состоит в том, чтобы найти, сколько строк того, что я определяю test, есть в массиве.

+0

Подсказка: вы не используете переменная 'i' в любом месте. – zerkms

+0

Подсказка: используйте indexOf() вместо сравнения массива и строки –

+0

, чего вы пытаетесь достичь? Какова ваша переменная 'data'. Вы перебираете его, но код, выполняемый внутри цикла for, не связан с 'data'. 'test' не может быть равен' 'name' ', потому что' test' - это массив. – zoom

ответ

1

Если вы хотите, чтобы найти, если элемент существует, то вы можете использовать

var test = ["hello","my","name"]; 
var element = "hello"; 
var index = test.indexOf(element); 
if(index != -1){ 
    //it exists 
    console.log(element + " exists at index " + index); 
}else{ 
    //it doesn't 
    console.log(element + " doesn't exist in array"); 
} 

Если же вы хотите проходным массив, как вы начали:

var test = ['hello', 'my', 'name']; 
    var name = "hello"; 
    var ct = null; 
    for (var i = 0; i < data.length; i++) { 
    if (test[i] === name) { 
     //In the array! 
     ct = "found"; 
     break; // if next element is not name, so if you found break 
    } else { 
     ct = "not found"; 
    } 
    }; 
    console.log(ct); 
Смежные вопросы