Как вернуть вывод массива из цикла for и проверить каждый по одному

Я хочу получить результат из массива и проверить его один за другим

//////////////////////////////////////////////
//////////// this code not works,  ////////////
////////////   but not flexible   ////////////
//////////////////////////////////////////////

var myA = ["said", "imad", "hassan", "bilal", "mohamed"];
var doc = document.getElementById('div1');
var inp = document.getElementById('input1');

function click1() {
    'use strict';

    var i = inp.value;

    if (i <= 0) {
    doc.innerHTML = 'Please type name';

    } else if (i === myA[0] || i === myA[1] ||
           i === myA[2] || i === myA[3] || i === myA[4]) {
    doc.innerHTML = i;

    } else {
    doc.innerHTML = 'Please type in a correct name';
    }
}


/////////////////////////////////////////////////////
//////////// my try to make it flexible, ////////////
//////////// but i get just a last index ////////////
/////////////////////////////////////////////////////


var myA = ["said", "imad", "hassan", "bilal", "mohamed"];
var index = myA[0];
// console.info(index);
var doc = document.getElementById('div1');
var inp = document.getElementById('input1');

function getId(a){
  var aL = a.length, index = a[0], x=0;

  for(x = 0; x < aL; x++ ){
  index = a[x];
  // console.info(index);
  }    
  return index;
}  
// console.info(getId(myA));

function click1() {
  'use strict';

  var i = inp.value;

  if (i <= 0) {
  doc.innerHTML = 'Please type name';

  } else if (i === getId(myA)) {
  doc.innerHTML = i;

  } else {
  doc.innerHTML = 'Please type in a correct name';
  }
}

Я бы посоветовал вместо того, чтобы ссылаться на весь ваш код, включить сюда соответствующие фрагменты и показать фактический результат в сравнении с ожидаемым результатом. Люди будут чаще помогать.

brandonx 10.04.2019 00:49

Ваш код должен быть включен в вопросе, а не на внешней странице. Кроме того, вместо того, чтобы пытаться проверить каждый результат, просто используйте myA.includes(i). См. Как проверить, содержит ли массив объект в JavaScript?

p.s.w.g 10.04.2019 00:55
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
27
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ваша функция получить идентификатор () просто неверна. Так, как он спроектирован, он зацикливается на вашем массиве моя А и всегда возвращает последний элемент: мохамед. Вам нужно передать этой функции значение для сравнения, перебрать массив и, если он найдет совпадение, вернуть логическое значение true. Если не заставить его вернуть false.

function getId(val){
  for(var a=0;a<myA.length;a++)
  {
    if (myA[a]==val)
    {
      return true;
    }
  }
  return false;
}

Теперь вы можете просто вызвать его

if (getId(i)) {
      doc.innerHTML = i;

  } else {
      doc.innerHTML = 'Please type in a correct name';
  }
Ответ принят как подходящий

Как проверить, находится ли значение в массиве:

Новый стиль (ES6):

if (myA.includes(inp.value)) {
  // name found in array
}

Старый стиль:

if (myA.indexOf(inp.value) > -1) {
  // name found in array
}

Другие вопросы по теме