Как проверить внутренние массивы, которые внутри внешнего массива?(Плюс => функция) - PullRequest
0 голосов
/ 18 октября 2018

Извините, если эти вопросы являются одним из основ JS.

Выпуск 1.

Я пытаюсь сделать так, чтобы код обнаруживал внутренний массив, который находится внутривнешний массив,

, и структура массива примерно такая:

var array = ['Bob', ['Tim', 'Katy', 'Zoe'], 'Jimmy', 'Jay' . . .]

<div>
  <ul>
    <li>name goes here</li>
    <li>name goes here</li>
    <li>name goes here</li>
    <li>name goes here</li>
    <li>name goes here</li>
    <li>name goes here</li>
  </ul>
</div>

  const peeps = ['Bob', ['Tim', 'Katy', 'Zoe'], 'Jimmy', 'Jay', 'Louis', 'Yagami Light'];

  $('div ul li').on('mouseenter', function() {
    for (i = 0; i < peeps.length; i++) {
      if (peeps[i][] in peeps[i] == true) {
        console.log('wow')
      }
    }
  })

Это мой прогресс, но он никогда не работает так, как яожидается.

Выпуск 2.

Я застрял, чтобы получить ключевое слово this из функции стрелки.

$('div ul li').on('mouseenter', () => {
  var a = $(this).index();
  console.log(a);
})

Этот код продолжает показывать -1 по некоторым причинам, но послеизменил () на function() {} код печатает 1, 2, 3, 4, как я хотел.

Кто-нибудь знает, почему функция => не может получить ключевое слово this из этого кода?

Любые советы или информация будут полезны для решения моих проблем.

Спасибо.

1 Ответ

0 голосов
/ 18 октября 2018

Для первой проблемы, пожалуйста, попробуйте использовать Array.isArray , чтобы проверить, является ли элемент массивом, как показано ниже -

var peeps = ['Bob', ['Tim', 'Katy', 'Zoe'], 'Jimmy', 'Jay', 'Louis', 'Yagami Light'];

peeps.forEach((d, i) => Array.isArray(d) && console.log('found an array', d))

А для второй проблемы это проблема "используя это с функциями стрелки".Чтобы решить эту проблему, вы можете изменить «функцию стрелки» на функцию es5

$('div ul li').on('mouseenter', function() {
  var a = $(this).index();
  console.log(a);
})
...