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

作者站长头像
站长
· 阅读数 5
<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>

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

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

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

回复
1个回答
avatar
test
2024-06-27

有这三个问题是因为对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...
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容