es6中的数组转换,关于Array.from()的一些疑问?

<ul>
    <li>11</li>
    <li>22</li>
    <li>33</li>
</ul>
<script>
    let lis = document.querySelectorAll('li');
    console.log([...lis]);
   let liC= Array.from(lis,ele=>ele.textContent);
    console.log(liC);
</script>

结果:
image.png

问题:
1.lis,ele=>ele.textContent中我把ele.textContent换成了lis.textContent结果出来的是一个undefine的集合,是为什么?image.png
2.lis,ele=>ele.textContent我是否可以理解为Array.from(arr,function),然后返回元素的文本内容?
3.该怎么理解lis和ele之间的关系呢?(因为看到很多案例都是说from可以传入两个参数,但是好像返回的都是第二个参数的东西,这一块不是很理解)

理论知识学的很浅,上手就有点迷茫,感谢帮忙指导,帮我恶补,非常感谢

阅读 2.6k
1 个回答

有这三个问题是因为对JS基础语法不清晰以及不明白 from()用法:

from() 方法用于通过拥有 length 属性的对象或可迭代的对象来返回一个数组。
或者说:
Array.from() 静态方法从可迭代或类数组对象创建一个新的浅拷贝的数组实例。

语法

Array.from(arrayLike)
Array.from(arrayLike, mapFn)
Array.from(arrayLike, mapFn, thisArg)

参数

arrayLike
想要转换成数组的类数组或可迭代对象。

mapFn 可选
调用数组每个元素的函数。如果提供,每个将要添加到数组中的值首先会传递给该函数,然后将 mapFn 的返回值增加到数组中。使用以下参数调用该函数:

element
数组当前正在处理的元素。

index
数组当前正在处理的元素的索引。

thisArg 可选
执行 mapFn 时用作 this 的值。

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Refer...
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题