ES6-Array .from() and .of()

2018-06-19  本文已影响0人  闪电西兰花
1.from()不是数组原型上的方法
const num = [1,2,3];
num.from();                 //报错:num.from is not a function
<ul>
    <li>go to store</li>
    <li>watch TV</li>
    <li>go shopping</li>
</ul>
<script type="text/javascript"> 
    const todos = document.querySelectorAll('li');              //返回的是NodeList
    const names = todos.map(todo => todo.textContent);          //报错:todos.map is not a function
</script>
//Array.from()可以将一个类数组对象或者可迭代的对象转换成一个真正的数组
<ul>
    <li>go to store</li>
    <li>watch TV</li>
    <li>go shopping</li>
</ul>
<script type="text/javascript">
    const todos = document.querySelectorAll('li');                       //NodeList
    const todoArr = Array.from(todos);
    const names = todoArr.map(todo => todo.textContent);   
    console.log(names);                                   //["go to store", "watch TV", "go shopping"]

</script>
//Array.from()简单写法
//Array.from()方法的第2个参数可以为函数,相当于先把todos转换为数组再执行函数
<script type="text/javascript">
    const todos = document.querySelectorAll('li'); 
    const todoArr = Array.from(todos,todo => todo.textContent);     
    console.log(todoArr);    //["go to store", "watch TV", "go shopping"]

</script>
//Array.from()也可以将字符串转换为数组
<script type="text/javascript">
    const str = 'textContent';
    const arr = Array.from(str);
    console.log(arr);              // ["t", "e", "x", "t", "C", "o", "n", "t", "e", "n", "t"]

</script>
2..of()创建数组
<script type="text/javascript">
    const arr = new Array(1);     //返回一个长度为1的空数组   
    const arr1 = new Array(4,59,5,1);      //[4, 59, 5, 1]

    const arr2 = Array.of(1);          //[1],只有一个参数时也返回一个数组
    const arr3 = Array.of(5,89);            //[5, 89]
</script>
上一篇 下一篇

猜你喜欢

热点阅读