es6 语法 (数组扩展)

{
    let arr = Array.of(3, 4, 7, 9, 11);
    console.log('arr', arr); //[3,4,7,9,11]
    let empty = Array.of();
    console.log(empty); //[]
}
//ES6为Array增加了from函数用来将其他对象转换成数组。

//当然,其他对象也是有要求,也不是所有的,可以将两种对象转换成数组。

//1.部署了Iterator接口的对象,比如:Set,Map,Array。

//2.类数组对象,什么叫类数组对象,就是一个对象必须有length属性,没有length,转出来的就是空数组。
{
    //转换数组
    let p = document.querySelectorAll('p');
    let pArr = Array.from(p);
    pArr.forEach(function(item) {
        console.log(item.textContent); //es6,嘿嘿嘿,快乐动起来
    });
    //map
    console.log(Array.from([1, 3, 5], function(item) {
            return item * 2
        })) //2,6,10
}

//数组填充
{
    console.log('fill-7', [1, 'a', undefined].fill(7)) // 7,7,7
    console.log('fll,pos', ['a', 'b', 'c'].fill('7', 1, 3)); //a 7 7 (1,3)表示起始位置,7为填充内容
}
//遍历相关
{
    //取位置
    for (let index of['1', 'c', 'ks'].keys()) {
        console.log('keys', index); //0 1 2
    }
    //取值
    for (let value of['1', 'c', 'ks'].values()) {
        console.log('values', value); //1 c ks (这里有兼容问题,需引入 import 'babel-polyfill')
    }
    //取位置和值
    for (let [index, value] of['1', 'c', 'ks'].entries()) {
        console.log('values', index, value); //0 1 2,1 c ks
    }
}
//在当前数组内部数组内一个成员赋值到其他地方
{
    console.log([1, 2, 3, 4, 5].copyWithin(0, 3, 4)); //4,2,3,4,5 (开始位置0,从第三个开始读起,截止位置为4,即5个数)
    console.log([1, 2, 3, 4, 5].copyWithin(1, 3, 4)) //1,4,3,4,5
    console.log([1, 2, 3, 4, 5].copyWithin(0, -2, -1)) //4,2,3,4,5
}
//查找
{
    console.log([1, 2, 3, 4, 5, 6].find(function(item) {
        return item > 3 //4 只找第一个值,不往后了
    }));
    console.log([1, 2, 3, 4, 5, 6].findIndex(function(item) {
        return item > 3 //3 找的是下标
    }));
}
//NaN 
{
    console.log('number',[1,2,NaN].includes(1)); // true 是否包含这个值
    console.log('number',[1,2,NaN].includes(NaN)); // true
}

 

posted @ 2017-09-30 17:04  abcByme  阅读(793)  评论(0编辑  收藏  举报