1.forEach

  • 格式:
 //第一个参数为函数//函数的第一个参数 是遍历的当前元素//函数的第二个参数 当前元素的下标//函数的第三个元素 数组本身//第二个参数为:函数中this指向。arr.forEach(function(item,index,arr){},obj) //obj指函数中的this指向
 var arr = {"千与千寻","肖申克的救赎","谁先爱上他的","哈尔的移动城堡","海上钢琴师"}var lis = document.querySelectorAll("li")arr.forEach(function(item,index,self){// console.log("电影名:"+item+",下标为:"+index);this[index].innerHTML = item;},lis);

2.map方法

map 映射含义,用法与forEach基本类似
可以在函数中定义返回值,返回是一个数组。

 var arr = [{name:"千与千寻",score:"8.6"},{name:"肖申克的救赎",score:"9.6"},{name:"谁先爱上他的",score:"8.3"},{name:"哈尔的移动城堡",score:"8.9"},{name:"海上钢琴师",score:"9.0"}]var arr2 = arr.map(function(item){return item.score;});console.log(arr2);

3.Array.from()

Array.from 方法可以将类似数组得对象转为真正的数组,比如:Dom获取的伪数组,arguments对象。

 let lis = document.querySelectorAll("li");console.log(lis);var arr = Array.from(lis);console.log(arr);function sort(){var args = Array.from(arguments);return args.sort();}console.log(sort(6,3,5));
 let likeArr = {length:3,"0":"hello","1":"word","2":"你好"}let arr = Array.from(likeArr);console.log(arr);

4.Array.of()

Array.of()方法将一组指,转为数组。

 let arr = Array.of(1,2,3);console.log(arr);let arr2 = new Array(3);console.log(arr2);

5.copywithin()

将指定位置的内容复制到其他位置(复制会覆盖原有的内容)然后返回当前数组。

  • 格式
 //target:必需,从该位置进行覆盖//start:可选,从该位置开始读取数据,默认为0。如果为负数,表示倒数。//end:可选 到该位置结束读取数据,默认为数组的长度。如果为负数,表示倒数、arr.copyWithin(target,[start],[end]){}

6.find()和findindex()

find 方法,找到第一个符合条件的数组元素。

 arr.find(function(item,indedx,arr){//条件判断})
 var arr = [1,6,-10,-9].find(function(item){return item < 0;})// ES6箭头函数写法var arr = [1,6,-10,-9].find(item=>item < 0)console.log(arr);

findindex,找到第一个符合条件的数组元素的下标。

 var arr = [1,6,-10,-9].findIndex(item=>item < 0)console.log(arr);

7.keys(),values(),entries()

这三个方法主要用于数组遍历。配合for…of循环。
keys():对键名的遍历
valies():对键值得遍历
entries()对键值对进行遍历

8.for…of循环

 //格式//item 指遍历的当前元素//arr 指遍历数组for(const item of arr){console.log(item);}var arr = ["a","b"]for(const item of arr){console.log(item)}
 var arr = ["a","b"]for (const item of arr.keys()){console.log(item);}// 0 1 for(const item of arr.values()){console。log(item);}//[0,"a"][1,"b"]

9.includes()

该方法可以判断数组是否包含指定的值。
格式:

 //arr;数组//value:判断数组中是否包含指定的值arr.inclues(value,target)```返回值:布尔值true为包含,false为不包含```javascriptvar arr = [1,2,3]console.log( [1,2,3].includes(2)); //trueconsole.log( [1,2,3].includes("2")); //falseconsole.log([1,2,3].includes(2,1));//trueconsole.log([1,2,3].includes(2,2));//false
 var arr = [1,2,3]var index = arr.indexOf(2);if(index !== -1){console.log("该值已包含");}else{console.log("该值不包含");}

9.1includes方法与indexOf()方法的区别

01.indexOf 返回的是下标。includes返回的是布尔值
02.indexOf用来判断是否包含不够语义化,不够直观
03.对于NaN是有误判的

10.对象扩展方法

10.1Object.Assign()

assgin()用于对对象的合并
格式:

//第一个参数后面的所有参数,合并第一个参数
Object.assign(target,obj1,obj2)
 const target = {name:'奥黛丽·赫本'}const obj1 = {age:'20'}const obj2 = {sex:'女'}Object.assign(target,obj1,obj2);console.log(target);

10.2浅拷贝

只拷贝复合数据的内存地址,拷贝后的变量让然指向原本的对象

10.3深拷贝

生成新的对象,新对象和就对象的值完全相同,然后新对象的地址复制。
assign方法时浅拷贝,也就是说,如果被合并的对象中有一个属性为对象,那么target对象拷贝得到的是这个对象的内存地址。

10.4同名属性

const obj1 = {name:"奥黛丽",age:"20",son:{name:"卢卡·多蒂",age:"40"}
}
const obj2 = {name:"赫本"
}
const target = {name:"奥黛丽·赫本",sex:"女"
};
Object.assign(target,obj1,obj2);
console.log(target);

遇到同名属性,则后面的参数对象中的属性会将前面的属性覆盖

10.5用在数组上

用在数组上时,会将数组视为对象

 var arr1 = [10,20,30];// arr1 = {//     "0":"a",//     "1":"b",//     "2":30// }var arr2 = ["a","b"];// arr2 = {//     "0":"a",//     "1":"b"// }Object.assign(arr1,arr2);console.log(arr1);//a,b,30

11. 集合

11.1 什么是集合

1.无序
2.不重复

11.2 set

ES6的新的数据结构,类似于数组,但是元素是唯一的,而且没有顺序

  • 创建set
 ler s = new set();
  • 添加元素的两种方式
 let s = new Set([30,40]);s.add(10)s.add(20)
let s = new Set([30,40]);
s.add(10)
s.add(20)
s.add(10)
s.add(true)
s.add("10")
s.add("10")
s.add(new String("hello"));
s.add(new String("hello"));
console.log(s);
//30,40,10,20,tue,"10",String,String

11.3属性和方法

  • size属性

返回该set集合中的元素个数

set.size();
  • add(value)
    往set集合中添加一个元素,返回Set本身。

  • delete(value)
    删除指定的值,返回一个布尔值,表示删除是否成功。

  • has(value)
    判断指定的值是否在set中存在,返回一个布尔值。

  • clear()
    清除所有元素,没有返回值。

11.4 补充

set转为数组得方法

Array.from 方法可以将set转为数组。

const arr = Array.from(s);

rest参数

const arr2 = [...s];
  • 给数组去重
 var arr = [10,20,20,30,50,30];//10,20,30,50var set = new Set(arr);arr = Array.from(set);console.log(arr);//封装成一个数组去重的方法function noDupli(array){return Array.from(new Set(array));}

11.5 遍历操作

  • keys()
    返回键遍历器
  • values()
    返回键的值得遍历器
  • entries()
    返回键值对的遍历器
 for (const item of set.keys()) {console.log(item);}for (const item of set.values()) {console.log(item);}for (const item of set.entries()) {console.log(item);}for (const item of set){console.log(item);}

12. map

是键值对的集合,与对象中的属性与属性很类似,但是对象中的属性名只能是字符串,值–值的对应,字符串–值的对应

  • 创建map
 let map = new Map();
  • 添加元素的方式
let map = new Map();map.set("数数","一二三四")map.set("马老师","好自为之")map.set("麦兜","鱼丸粗面")let map = new Map([["name","周润发"],["age","40"]]);
  • 唯一性
    键的唯一性,而不是值的唯一。
 map.set("数数","一二三四")map.set("马老师","好自为之")map.set("马老师","年轻人不讲武德")// map.set("浑元形意太极拳掌门","好自为之")map.set("麦兜","鱼丸粗面")

12.1 属性方法

  • size
    返回map中有多少键值对

  • set(key,value)
    往map集合中添加一个key - value的键值对,返回map本身,如果key存在,原值会被覆盖。

  • delete(key)
    通过键查找对应的键值对,将其删除,返回一个布尔值,表示删除是否成功。

  • has(key)
    判断指定的键是否在map中存在,返回一个布尔值

  • clear()
    清楚所有元素没有返回值

  • get(key)
    读取key对应的键值,如果找不到,返回undefined

13 遍历操作

  • keys()
    返回键名遍历器
  • values()
    返回键的值的遍历器
  • entries()
    返回键值对的遍历器

14 对象的扩展

14.1对象属性的简洁表示法

ES6可以在对象的大括号中,直接写入变量 和函数,作为对象的属性和方法。如果属性名与变量名相同,则可以简写,只写属性名即可。

 var name = "赫本"var obj = {name}//相当于var obj = {name:name}
 function fn(a,b){return {a,b};}var obj = fn("hello","word");console.log(obj);

14.2方法简写

在对象中,可以对方法进行简写

 let obj = {fn(){console.log("今晚九点,海岛集合。");}}//相等于let obj = {fn:function(){console.log("今晚九点,海岛集合。");}}

简写只适用于普通方法,构造函数不能简写

14.3属性名表达式

拆分的功能,如果是对象,则将对象中的所有属性遍历出来,如果是数组,则将所有元素遍历出来

 let a = {x:1,y:2}let b = {...a}console.log(b);let arr = [10,20,30];let c = {...arr}console.log(c["0"]);

ES6数组得扩展与对象的扩展相关推荐

  1. ECMA2015(ES6)简单入门-9-对象-对象的扩展-对象的新增方法

    对象的创建 使用Object构造函数来创建一个对象 使用对象字面量创建一个对象 工厂模式创建对象 构造函数模式创建对象 原型模式创建对象 本身也有缺陷,就是实例共享了引用类型friends,从下面的代 ...

  2. c扩展php 对象,PHP扩展开发之面向对象

    本章内容 本章主要介绍如何从扩展层面创建内部类,添加属性和方法. 注册类 在 php 源码中,类是用 zend_class_entry 结构体标志的: struct _zend_class_entry ...

  3. 【ES6】阮一峰ES6学习(四) 对象的扩展

    对象的扩展 1. 属性的简洁表示法 ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. const foo = 'bar'; const baz = {foo}; ...

  4. [ES6] 细化ES6之 -- 对象的扩展

    对象的属性 属性表示法 ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法 ES5 let name = "张无忌"; function sayMe() {cons ...

  5. ES6 数组、对象的扩展

    8. 数组的扩展 扩展运算符(...),将一个数组转为用逗号分隔的参数序列. 复制数组 const a2=[...a1] 合并数组 [...arr1, ...arr2, ...arr3]; arr1. ...

  6. wxif 判断字符串相等_ES6:字符串、数组、对象的扩展

    字符串的扩展 ES6中的字符串扩展,用得少,而且逻辑相对简单.如下: includes(str):判断是否包含指定的字符串 startsWith(str):判断是否以指定字符串开头 endsWith( ...

  7. es6调用c语言sdk,ES6 关于对象的扩展-contracts-WinFrom控件库|.net开源控件库|HZHControls官网...

    今天来简单说下ES6 中对象的扩展 首先回顾传统的对象表示法 let person={ 'name':'zhang', 'age':'20', 'play':function(){ alert('pl ...

  8. ES6数组的扩展~超详细、超好理解哦

    在ES5中,数组主要分为两大类:索引数组 和 关联数组(和对象很像). 在ES6中,对数组进行了一些扩展,跟小编一起来看看吧! 希望这篇博客可以帮助到有需要的小伙伴 文章目录 扩展运算符 替代appl ...

  9. 【JavaScript】ES6 数组的扩展

    ES5 数组基础 ES5 数组常用方法 ES5 数组方法 arr.forEach() arr.forEach(callback[, thisObj]) 简单地遍历数组 callback:回调函数,没有 ...

  10. ES6 数组的扩展:扩展运算符

    文章目录 扩展运算符 应用 扩展运算符 扩展运算符(-)作用是将一个数组转为用逗号分隔的参数序列. console.log(...[1, 2, 3]); // 1 2 3console.log(1, ...

最新文章

  1. 虚幻4视频笔记002:精简StarterContent文件夹体积
  2. 造一个鸿蒙,仅有华为还不够
  3. 【转自聊聊架构公众号】 Redis大key图形化统计及展示
  4. linux内核链表的使用
  5. 勤哲cad服务器支持ug,勤哲CAD服务器
  6. 转:Python: threading.local是全局变量但是它的值却在当前调用它的线程当中
  7. Redis的AOF日志
  8. vijos P1009清帝之惑之康熙
  9. 【如何选择到合适的天线-天线参数讲解 】
  10. cocos2dx 手游luac 解密 文件的key
  11. 手把手教你做视频播放器(二)-获取视频信息
  12. .San(三). Xia(峡).对长江二号洪水削峰作用总结
  13. c语言挖地雷游戏,c扫雷小游戏
  14. 计算机网络与通信毕业论文题目,数据通信与网络系统毕业论文题目(692个).doc...
  15. 第17章 其他数据库日志【4.日志与备份篇】【MySQL高级】
  16. 质量功能配置(QFD)矩阵
  17. office的加载项作用
  18. [Python] 一元线性回归分析实例
  19. 稳压二极管与肖特基二极管
  20. 查询快递物流信息在哪里查

热门文章

  1. 6.1.3. Mentor: Design Not Just for Usability, but Learnability
  2. easyUI filebox限定文件大小
  3. 兔子是这样吃掉狼和野猪的
  4. SQL的DATEDIFF计算天数
  5. 目前几种实时视频流协议对比
  6. 计算机用户删除文件找回,电脑上删除的文件如何找回 业内人士分享小技巧
  7. AS找回被删除的文件
  8. QGraphicsItem
  9. jsp中空格字符怎么写_jsp空格符号怎么打
  10. Linux常用命令--软件包管理之(服务管理)