es6数组和对象常用方法

随着es6的发布,新版标准提供了很多新的api,给了开发人员提供了很大的帮助,操作简便,提升效率,现在主要讲下es6提供新的操作数组和对象的一些常用方法。

一、数组的操作

Object.entries() 

 作用:将一个对象中可枚举属性的键名和键值按照二维数组的方式返回。若对象是数组,则会将数组的下标作为键值返回。

Object.entries({ one:1,two: 2}) // [['one', 1], ['two', 2]]

Object.entries([1, 2]) // [['0', 1],['1', 2]]

Object.keys() 和 Object.values()

作用:只返回自己的键值对中属性的值。它返回的数组顺序,也跟Object.entries()保持一致

var obj = { foo:'bar',baz: 42};

console.log(Object.keys(obj)) // ["foo", "baz"] 返回key

console.log(Object.values(obj)) // ["bar", 42] 返回value

console.log(Object.entries(obj)) // [["foo","bar"],["baz",42]]

Array.prototype.includes() 

作用:includes()是查找一个值在不在数组里,若是存在则返回true,不存在返回false

['a','b','c'].includes('a') // true

['a','b','c'].includes('A') //false

['a','b','c'].includes('d') //false
要搜索的值和搜索的开始索引(接收2个参数)
['a','b','c','d'].includes('b') // true 

['a','b','c','d'].includes('b', 1) // true 

['a','b','c','d'].includes('b', 2) // false
includes与ES6中的indexOf() 比较
['a','b','c'].indexOf('a') // 0

['a','b','c'].indexOf('b') //1

['a','b','c'].indexOf('c') // 2 

['a','b','c'].indexOf('d') //-1
includes() 返回是布尔值,能直接判断数组中存不存在这个值,而indexOf()返回的是索引,这点前者更加方便。 ES6为Array增加了find(),findIndex() 函数。

findIndex((value,index,arr) 三个参数:
value:每一次迭代查找的数组元素。
index:每一次迭代查找的数组元素索引。
arr:被查找的数组。

find()   函数用来查找目标元素,找到就返回该元素,找不到返回undefined。 
findIndex()  函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。 

Array.prototype.flat()  
作用:将嵌套数组转换为一维数组 数组的成员有时还是数组
作用:用于将嵌套的数组“拉平”, 变成一维的数组。该方法返回一个新数组(默认拉平一层) 
[1,2,3,4,5,[6,7],[8,9]].flat(1) // [1,2,3,4,5,6,7,8,9] 

[1,2,3,4,[5,6,[7,8]]].flat(1) // [1, 2, 3, 4, 5, 6, Array(2)] 

[1, 2,[3,4,[5,6,[7,8]]]].flat(3) // [1,2,3,4,5,6,7,8]  将多维数组拉平成一维数组

二、对象的操作

es6 对对象的操作
Object.is() // 对象比较 

Object.assign() // 合并对象

var obj1 = {name:"wang"};

var obj2 = {name:"wang"};

// es5
obj1.name === obj2.name  // true

// es6
Object.is(obj1.name,obj2.name) // true


var a ={a:'left'}

var b ={b:'right'}

// es5
a.concat(b)  // {a:"left", b: "right"}

// es6
Object.assign(a,b)   // {a:"left", b: "right"}
Object.fromEntries()  方法是Object.entries()的逆操作,用于将一个键值对数组转为对象。

Object.fromEntries([['foo', 'bar'],['baz', 42]]) // { foo:"bar",baz: 42 }

es6 对象遍历   Object.keys(),Object.values()
var obj = { foo:'bar',baz: 42}

console.log(Object.keys(obj))  // ["foo", "baz"] 返回key

console.log(Object.values(obj)) // ["bar",42] 返回 value

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在ES6中对数组对象进行去重,有几种方法可以实现。 方法一是使用filter()方法和findIndex()方法。首先使用filter()方法返回一个新的数组,其中包含满足条件的唯一元素。然后使用findIndex()方法来检查新数组中是否已存在当前元素。如果不存在,则将其添加到新数组中。这种方法适用于简单的对象数组去重操作。 方法二是使用reduce()方法。reduce()方法可以对数组进行迭代,并返回一个累积值。在这种情况下,我们可以使用reduce()方法来遍历数组并构建一个新数组,其中没有重复的元素。可以通过检查每个元素是否在累积值中出现来实现去重。 另外,还可以使用ES6中新增的Set数据结构来进行去重。Set是一种值的集合,它只能存储唯一的值。可以将数组转换为Set,然后再将Set转换回数组。这样就可以去除重复的元素。 下面是一个示例代码,演示了如何使用reduce()方法实现数组对象去重: ```javascript let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name: "小李"}, {id: 3, name: "小孙"}, {id: 1, name: "小周"}, {id: 2, name: "小陈"}, ]; let hasObj = {}; person = person.reduce((cur, next) => { hasObj[next.id ? "" : (hasObj[next.id = true && cur.push(next)); return cur; }, []); console.log(person); // 输出: [{"id": 0,"name": "小明"}, {"id": 1,"name": "小张"}, {"id": 2,"name": "小李"}, {"id": 3,"name": "小孙"}] ``` 以上是几种常用方法来实现ES6数组对象去重的方式。可以根据具体的需求选择其中适合的方法进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值