Js基础 ES6+ 数组、对象的常用方法

目录

数组

1.map()

2. forEach()

 注意:map和forEach  有可能改变原数组

3. filter()

4.find() 

 5.findIndex() 

 6.some()

 7.every() 

  8. reduce()

对象

1.Object.is()

 2.Object.assign()

3.Object.keys()

 4.Object.values()

 5.Object.entries()

 拓展

1.Set()

2.Map()

积累~

1.Js直接将 字符串数组转为数字数组 和直接将 数字数组转为字符串数组

2.Js通过获取index截取字符串 不生成新数组或新字符串


数组

1.map()

        map() 遍历数组中每一项并依次处理元素  返回一个新数组

例:

写法一:

  写法二:

arr参数基本不用,可以不写

2. forEach()

        forEach() 遍历数组中每一项   没有返回值  

 注意:map和forEach  有可能改变原数组

当要改变的数组中的值是 引用类型 时,就可以直接改变,例:

 当要改变的数组中的值是 基本类型 时,就没有改变,例:

3. filter()

        filter() 过滤原数组中的数据  返回一个新数组,把满足条件的放在新数组中,如果没有满足条件的元素,则返回一个空数组   不改变原数组的值

例:

4.find() 

        find()  查找到数组中第一个满足条件的元素的值  返回查找到的那个数据,如果找不到则返回undefined

:如果有多个满足条件的元素,只返回满足条件的第一个元素

例:

 5.findIndex() 

        findIndex() 查找到数组中第一个满足条件元素的下标  返回查找到的那个数据的下标,如果找不到返回-1

例:

 6.some()

        some() 查找数组中是否有满足指定条件的元素  返回一个布尔值  只要有满足条件的返回true,没有满足条件,返回false

例:

 7.every() 

        every()  查找数组中是否所有元素都符合指定条件 返回一个布尔值  所有元素都满足条件的返回true,有一个元素不满足就返回false  即 一假则假

例:

  8. reduce()

        reduce()  接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。 有四个参数 reduce(prev,item,index,array)    prev: 上次返回的结果  可以设置默认值  item 当前数据    index 当前数据的下标   array 当前操作的数组

给初始值如下所示,没有初始直接不写就行

 例:

 如果传入了空数组没有给初始值报错     给个初始值就可以了

 

对象

1.Object.is()

        Object.is() 判断两个对象是否相等(比对存储地址)。

例:

 2.Object.assign()

        Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象,它将返回目标对象   如有同名属性,后面的会覆盖前面的

3.Object.keys()

        Object.keys() 遍历对象   返回对象中每一项key数组

处理数组 返回索引数组

 处理字符串 返回索引数组

也可以结合forEach()来用

 4.Object.values()

        Object.values() 遍历对象   返回对象中每一项Value数组  只会遍历对象自身的可遍历属性

 5.Object.entries()

        Object.entries() 遍历对象   返回对象中每一项 key value数组 

Object.entries() 可以把一个对象的键值以数组的形式遍历出来,结果和for...in循环遍历该对象时返回的结果一样,但是不会遍历其原型属性

 拓展

1.Set()

        Set是ES6新增的一种数据结构,类似数组,但是它的元素成员是唯一的 可用来数组去重

  • 声明一个set数据类型         
  • Set.size:返回Set中元素的数量                       

       

   set里面的数据是唯一的  会自动把重复的去掉

      

  •  Set.has(key):查找Set对象中是否存在key,返回一个布尔值 
  •  Set.add(key):往Set对象中添加一个元素  
  •  Set.delete(key):删除元素key  
  •  Set.clear(): 清空Set的全部元素  
  • 遍历Set                                                                                                              
  •  Set转数组                                                                                                

2.Map()

        Map也是ES6新增的数据结构,类似于对象,本质上就是键值对的集合,对象的键只能是字符串或者Symbols,但Map的键可以为任意类型

  • 通过传入二维数组方式创建                                                                      
  •  Map.size:返回Map对象中键值对数量                                          ​ 
  • Map.has(key):查找Map对象中是否存在key,返回一个布尔值           ​ 
  •  Map.set(key, value):设置Map对象的键值对(键名,键值),返回当前对象     
  •  Map.get(key):返回key值对应的value,如果key不存在则返回undefined     
  • Map.delete(key):删除Map对象中键名为key的键值对                         
  •  Map.clear():移除Map对象中保存的所有键名/键值对

   数组和对象的方法在Set和Map中同样适用~

积累~

1.Js直接将 字符串数组转为数字数组 和直接将 数字数组转为字符串数组

 

2.Js通过获取index截取字符串 不生成新数组或新字符串

str.lastIndexOf("/")  获取最后一次斜杠的下标

需要斜杠的话就不用加1了

后续有学到用到的再继续积累~

ES6引入了一些新的数组循环方法,它们比传统的for循环更简洁易读。以下是几种常用数组循环方法: 1. **forEach**: 这是最简单的遍历数组的方式,对每个元素执行一次提供的回调函数。例子: ```javascript const arr = [1, 2, 3]; arr.forEach(item => console.log(item)); ``` 2. **map**: 对数组中的每个元素应用一个函数,并返回一个新的数组,新数组包含原始元素经过操作后的结果。例子: ```javascript const newArr = arr.map(num => num * 2); // 新数组为 [2, 4, 6] ``` 3. **filter**: 创建一个新数组,只包含通过指定测试的所有元素。例子: ```javascript const filteredArr = arr.filter(num => num % 2 === 0); // 新数组只包含偶数 ``` 4. **reduce**: 将数组缩减成单个值,通过累加、合并或其他函数对每个元素应用一个操作。例子: ```javascript const sum = arr.reduce((total, num) => total + num, 0); // 计算数组所有元素之 ``` 5. **some**: 判断数组是否有满足条件的元素,如果有则返回true,否则返回false。例子: ```javascript const hasEven = arr.some(num => num % 2 === 0); ``` 6. **every**: 检查数组中的所有元素是否都满足某个条件,如果有任何一个不满足,则返回false。例子: ```javascript const areAllPositive = arr.every(num => num > 0); ``` 7. **find**: 找到数组中满足指定条件的第一个元素,若无符合条件的元素则返回undefined。例子: ```javascript const firstPositive = arr.find(num => num > 0); ``` 8. **findIndex**: 类似于find,但它返回的是符合条件的第一个元素的索引。例子: ```javascript const indexOfFirstPositive = arr.findIndex(num => num > 0); ``` 9. **Array.from() Array.of()**: 可以用于将其他可迭代对象转换成数组。比如: ```javascript const iterableObj = {0: 'a', 1: 'b'}; const newArray = Array.from(iterableObject); ``` 以上就是ES6常用数组循环方法,它们提高了代码的可读性性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值