ES6 基础2

构造函数调用的方法:  静态方法

实例对象调用的方法:  实例方法

1.数组对象新增方法(补充)

1.1  Array.isArray(arr)       true / false

console.log(Array.isArray([1,2,3]))

1.2  filter     过滤数组单元,如果返回值为真,将元素放入新数组

       map     对数组进行排序,将计算后的结果放入新数组

<script src="cities.js"></script>
<script>
 1. 将城市名字中包含 白  字的 输出
     let arr = cities.filter(city => city.nm.includes('白'))

 2. id末尾为0的城市
     let arr = cities.filter(city => city.id % 10 === 0);
     console.log(arr);

 3. 将拼音大写
     let arr = cities.map(city => {
         city.py = city.py.toUpperCase();
         return city;
     })

 4. 将数组的值全部返回3次方
     let arr = [1,3,5,7,9];
     let newArr = arr.map(n => n**3);
     console.log(newArr);
</script>

 1.3  some(callback)  对数组进行遍历,只要有一个满足条件,则返回true,并终止遍历,否          则返回false

<script src="cities.js"></script>
<script>
 遇到第一个含有 石 字的城市停下来
     let n = cities.some(city => {city.nm.includes('石'));
     console.log(n);
</script>

1.4  every(callback)  对数组进行遍历,只要有一个不满足条件,则返回false,并终止遍历,         否则返回true

1.5  forEach(callback)   遍历数组,无返回值

1.6  reduce(function(preValue,nowValue,index,arrSelf) {return preValue + nowValue})

       累加数组单元

       preValue   上一个值

       nowValue   当前值

       index     当前值下标

       arrSelf    当前数组

<script>  
求和
     let arr = [1,2,3,4];
     let sum = arr.reduce((preValue, nowValue) => preValue+nowValue)
     console.log(sum)
</script>

2.对象的新增特性

2.1  属性及方法的简洁表示(key名与value名相同)

<script>
 var name = "王公子";
    var skill = "今夜买单";
    var hobby = "唱跳";
    var wgz = {
         name: name,
         skill: skill,
         hobby: hobby
    }
    let wgz = {
        name,skill, hobby,
        sing() {},
        jump() {},
        run() {}
    }
</script>

2.2  Object.is()相当于全等但是有区别

       Object.is(1,2)

       Object.is(NaN,NaN)

       Object.is(0,-0)

<script> 
if (NaN === NaN) {
     console.log("ok");
 }
 if (Object.is(NaN, NaN)) {
      console.log('yes');
 }
</script>

2.3  Object.assign(obj1,obj2,obj3)合并对象 

2.4   Object.keys(obj)  将obj的key值返回数组

        Object.values(obj) 将obj的value值返回数组

<script> 
let cc = {
        A: [],
        B:[],
        D:[],
        T: []
    }
 let arr = Object.keys(cc);
 console.log(arr);
</script>

3.set数据结构

3.1 类似于数组,但是成员唯一,没有索引

3.2  var set = new Set(x)    x:数组,类数组,字符串

3.3  获取set的长度不是length而是size

3.4  方法 : add(x);delete(x);has(x);clear(x)

3.5  可以使用 for of 与 forEach 对 set 进行遍历

// 特征:成员唯一
function MySet(array=[]) {
    let arr = [];
    array.forEach(item => {
        if (!arr.includes(item)) {
            arr.push(item)
        }
    });
    this.array = arr;
} 

// 增加:add
MySet.prototype.add = function(item) {
    this.array.includes(item) || this.array.push(item);
}

// 删除:del
MySet.prototype.del = function(item) {
    let index = this.array.indexOf(item);
    if (index === -1) {
        return;
    }
    this.array.splice(index, 1);
}

// 清空:clear
MySet.prototype.clear = function() {
    this.array = [];
}

// 是否存在:has
MySet.prototype.has = function(item) {
    return this.array.includes(item);
}

    数组去重
    Array.prototype.singleArr = function() {
        return [...new Set(this)];
    } 

猜你喜欢

转载自blog.csdn.net/Cc200171/article/details/125284694