小言_互联网的博客

ES6内置对象

313人阅读  评论(0)

ES6 的内置对象

1.Array的扩展方法

1.1扩展运算符

扩展运算符可以将数组或者对象转为用逗号分割的参数序列

let arr = [1,2,3];
...arr   //1,2,3
console.log(...arr);   /相当于console.log(1,2,3)

扩展运算符应用于合并数组

//方法1
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr3 = [...arr1,...arr2];
//方法2
arr1.push(...arr2);

将伪数组或者可以遍历的对象转换为真正的数组

let divs = document.getElementsByTagName('div');
divs = [...divs];

1.2构造函数方法Array.from()

将伪数组或可遍历的对象转换为真正的数组

//定义一个对象
let arrayLike = {
    '0':'a',
    '1':'b',
    '2':'c',
    length:3
}
//转换为数组
let arr = Array.from(arrayLike);// ['a','b','c']
//------------------------------------------------
//方法还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理,将处理后的值放入返回的数组
let arrLike = {
    '0':1,
    '1':2,
     "length":2
}
let arr = Array.from(arrLike,item => item*3) //[3,6]

类数组的习题


var obj = {
            '0': 'a',
            '1': 'b',
            length: 2,
            'push': Array.prototype.push
        }
        obj.push('c');
        obj.push('d');
        console.log(obj)
//{0: "a", 1: "b", 2: "c", 3: "d", length: 4, push: ƒ}
//--------------------------------------------
//2.
var obj ={
    '2':'a',
    '3':'b',
    length :2,
    'push':Array.prototype.push
}
obj.push('c');
obj.push('d');
//console.log(obj)
//{2: "c", 3: "d", length: 4, push: ƒ}
//--------------------------------------------
//3.
var obj = {
    '1':'a',
    '2':'b',
    '3':'c',
    length:3,
    push:Array.prototype.push
}
obj.push('m');
console.log(obj);
//{1: "a", 2: "b", 3: "m", length: 4, push: ƒ}
//---------------------------------------------
 var obj = {
            '0': 'a',
            '1': 'b',
            length: 5,
            'push': Array.prototype.push
        }
        obj.push('c');
        obj.push('d');
        console.log(obj)
//{0: "a", 1: "b", 5: "c", 6: "d", length: 7, push: ƒ}

总结:类数组添加数据是从数组长度的位置开始添加数据

1.3实例方法:find()

用于找到第一个符合条件的数组成员,如果没有,就返回undefined

let arr=[{
    id:1,
    name:'zs'
},{
    id:2,
    name:'ls'
}];
let target = arr.find((item,indx) => item.id ==2);//找数组里面符合条件的值,当数组中元素id等于2就查找出来,只会匹配第一个

1.4实例方法:findIndex()

用于找出第一个符合条件的数组成员位置,如果没有找到返回-1

let arr = [1,3,5,7,9];
let index = arr.findIndex((value,index) => value > 5);
console.log(index);//3

1.5实例方法:includes()

判断某个数组是否包含给定的值,返回布尔值

[1,2,3].includes(2);//true
[1,2,3].includes(4);//false

2.String 的扩展方法

模板字符串

ES6新增的创建字符串的方式,使用反引号定义

let name = `zhangsan`;
模板字符串中可以解析变量
let name = '张三'; 
let sayHello = `hello,my name is ${name}`; // hello, my name is zhangsan
模板字符串中可以换行
 let result = { 
     name: 'zhangsan', 
     age: 20,
     sex: '男' 
 } 
 let html = ` <div>
     <span>${result.name}</span>
     <span>${result.age}</span>
     <span>${result.sex}</span>
 </div> `;

在模板字符串中可以调用函数
const sayHello = function () { 
    return '哈哈哈哈 追不到我吧 我就是这么强大';
 }; 
 let greet = `${sayHello()} 哈哈哈哈`;
 console.log(greet); // 哈哈哈哈 追不到我吧 我就是这么强大 哈哈哈哈

实例方法:startsWith() 和 endsWith()

1.startWith():表示参数字符串是否在原字符串的头部,返回布尔值

2.endsWith():表示参数字符串是否在原字符串的尾部,返回布尔值;

let str = 'hello world!';
str.startWith('hell0');//true
str.endsWith('!');//true

实例方法:repeat()

repeat方法表示将原字符串重复n次,返回一个新字符串

'x'.repeat(5);//'xxxxx'
'hello'.repeat(2);//'hellohello'

3.Set数据解构

ES6提供了新的数据结构Set,类似于数组,但是成员的值都是唯一的,没有重复值;

Set本身是一个构造函数,用来生成Set数据结构;

const s = new Set()

Set函数可以接受一个数组作为参数,用来初始化

const set = new Set([1,2,3,4,5,5,5,5]);//{1,2,3,4,5}

实例方法

1.add(value):添加某个值,返回Set结构本身;

2.delete(value):删除某个值,返回一个布尔值,表示删除是否成功;

3has(value):返回一个布尔值,表示该值是否为Set的成员;

4.clear():清除所有成员,没有返回值;

const s = new Set();
s.add(1).add(2).add(3); //向数据结构中添加值
s.delete(2);            //删除set结构中的2
s.has(1);               //表示set结构中是否有1这个值,返回布尔值
s.clear();              //清除set结构中的所有值
//删除的是元素的值,不代表的索引

遍历

Set结构中实例与数组一样就,也拥有forEach方法,用于对每个成员执行某种操作,没有返回值;

s.forEach(value => console.log(value));

转载:https://blog.csdn.net/weixin_44976833/article/details/101905896
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场