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>
结果:
问题:1.lis,ele=>ele.textContent
中我把ele.textContent
换成了lis.textContent
结果出来的是一个undefine的集合,是为什么?2.lis,ele=>ele.textContent
我是否可以理解为Array.from(arr,function)
,然后返回元素的文本内容?3.该怎么理解lis和ele之间的关系呢?(因为看到很多案例都是说from可以传入两个参数,但是好像返回的都是第二个参数的东西,这一块不是很理解)
理论知识学的很浅,上手就有点迷茫,感谢帮忙指导,帮我恶补,非常感谢
回复
1个回答
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...
回复
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容