如何检查外部数组内部的内部数组? (加号 => 功能)

How to check inner arrays that inside of outer array? (Plus => function)

抱歉,如果这些问题是 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 关键字吗?

任何提示或信息都可以很好地解决我的问题。

谢谢。

对于第一个问题,请尝试使用 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))

第二个问题是“using this with Arrow functions”。要解决此问题,您可以将 "arrow function" 更改为 es5 函数

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