ES6实用的数组方法

1 fill() 填充数组

常用于初始化数组

接收3个参数,第一个是填充的值,第二个和第三个参数是用于指定填充的起始位置和结束位置

['a', 'b', 'c'].fill(7)
// [7, 7, 7]

new Array(3).fill(7)
// [7, 7, 7]

['a', 'b', 'c'].fill(7, 1, 2)
// ['a', 7, 'c']

2 includes() 示某个数组是否包含给定的值

第一个参数是要查找的值,该数值返回一个布尔值

第二个参数表示搜索的起始位置,默认为0。如果第二个参数为负数,则表示倒数的位置,如果这时它大于数组长度(比如第二个参数为-4,但数组长度为3),则会重置为从0开始。

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


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

3 flat() 用于将嵌套的数组“拉平”,实现扁平化

该方法返回一个新数组,对原数据没有影响

参数中如果传一个数字代表要拉平的层数,默认为1

[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]

[1, 2, [3, [4, 5]]].flat(2)
// [1, 2, 3, 4, 5]

如果要拉平多层嵌套可以把Infinity关键字作为参数

[1, [2, [3]]].flat(Infinity)
// [1, 2, 3]

4 flatMap() 用于对原数组的每个成员执行一个函数,然后对返回值组成的数组执行flat()方法

该方法返回一个新数组,不改变原数组。

// 相当于 [[2, 4], [3, 6], [4, 8]].flat()
[2, 3, 4].flatMap((x) => [x, x * 2])
// [2, 4, 3, 6, 4, 8]


//flatMap()只能展开一层数组。

// 相当于 [[[2]], [[4]], [[6]], [[8]]].flat()
[1, 2, 3, 4].flatMap(x => [[x * 2]])
// [[2], [4], [6], [8]]

5 toReversed(),toSorted(),toSpliced(),with() 

这四个方法其实和传统的reverse(),sort(),splice()操作一样,唯一的不同是允许对数组进行操作时,不改变原数组,而返回一个原数组的拷贝。

  • toReversed()对应reverse(),用来颠倒数组成员的位置。
  • toSorted()对应sort(),用来对数组成员排序。
  • toSpliced()对应splice(),用来在指定位置,删除指定数量的成员,并插入新成员。
  • with(index, value)对应splice(index, 1, value),用来将指定位置的成员替换为新的值。
    const sequence = [1, 2, 3];
    sequence.toReversed() // [3, 2, 1]
    sequence // [1, 2, 3]
    
    const outOfOrder = [3, 1, 2];
    outOfOrder.toSorted() // [1, 2, 3]
    outOfOrder // [3, 1, 2]
    
    const array = [1, 2, 3, 4];
    array.toSpliced(1, 2, 5, 6, 7) // [1, 5, 6, 7, 4]
    array // [1, 2, 3, 4]
    
    const correctionNeeded = [1, 1, 3];
    correctionNeeded.with(1, 2) // [1, 2, 3]
    correctionNeeded // [1, 1, 3]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用ES6方法去重数组对象时,可以采用两种方法方法一是使用filter()和findIndex()函数的组合。通过filter()函数筛选出数组中的每个元素,然后使用findIndex()函数来检查该元素是否在数组中的其他位置有重复。如果没有重复,则保留该元素。方法二是使用reduce()函数进行去重。reduce()函数可以通过遍历数组来生成一个新的数组,其中不包含重复的元素。这两种方法都可以有效地实现数组对象的去重操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [JavaScript数组去重—ES6的两种方式](https://blog.csdn.net/FE_dev/article/details/78110153)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【ES6es6数组中对象去重,数组对象去重方法总结---filter()与reduce()实践](https://blog.csdn.net/weixin_42960907/article/details/123202275)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值