首页 > 其他分享 >ES6技巧(快速解构赋值、数组去重、数组转对象)

ES6技巧(快速解构赋值、数组去重、数组转对象)

时间:2024-02-26 14:34:59浏览次数:25  
标签:ES6 arr Set 对象 解构 12 数组 赋值

1.如何将a,b的值快速互换

let a=1;
let b = 2; 
[a,b] = [b,a]

解析:

  1. 首先,我们有变量 a 被赋值为 1,变量 b 被赋值为 2
  2. 然后,[a, b] = [b, a] 这行代码实际上是将数组 [b, a] 解构赋值给了数组 [a, b]
  3. 在解构赋值过程中,右侧的数组 [b, a] 中的值会被依次赋给左侧的数组 [a, b] 中的变量,位置对应。
  4. 因此,在这个例子中,b 的值会被赋给 aa 的值会被赋给 b,实现了两个变量值的互换。

最终的结果是 a 的值变为 2b 的值变为 1

2.数组快速去重

let arr= [12,23,34,45,23,12,66,45]
let newArr = [...new Set(arr)]

解析:

  1. 首先,定义了一个包含重复元素的数组 arr[12, 23, 34, 45, 23, 12, 66, 45]
  2. 接着,使用了扩展运算符(Spread Operator)和 Set 对象来去除数组中的重复元素。
  3. new Set(arr) 创建了一个 Set 对象,Set 对象是一种特殊的集合,其中的值是唯一的,不会重复。
  4. [...new Set(arr)] 部分利用了扩展运算符将 Set 对象转换为一个新的数组。
  5. 最终,将去除了重复元素的数组赋值给了变量 newArr

因此,newArr 的值将是一个去除了重复元素后的新数组,即 [12, 23, 34, 45, 66]

3.快速将数组转为对象

const arr = [['name', 'Alice'], ['age', 30]];
const obj = Object.fromEntries(arr);

解析:

  • 数组 arr 包含两个子数组,每个子数组都包含两个元素,第一个元素是键,第二个元素是对应的值。
  • Object.fromEntries() 方法接受一个类似于 Map 对象的键值对列表,并返回一个由这些键值对生成的新对象。
  • 在这里,Object.fromEntries(arr) 将 arr 中的键值对转换为对象的属性和属性值,生成对象

因此,最终的结果是将二维数组转换为对象,并且对象的属性和属性值与原始数组中的键值对对应。这是一种快速创建对象的方式,特别适用于转换一些简单的数据结构。

标签:ES6,arr,Set,对象,解构,12,数组,赋值
From: https://www.cnblogs.com/qinlinkun/p/18034251

相关文章

  • NumPy数组图解
    N维数组的属性如果说强大而完备的第三方库,赋予了Python独特的魅力,那么N维数组(ndarray)便使得NumPy拥有了灵魂。我们仅以NumPy的一维数组为例介绍了一些函数的应用。而实际上,在机器学习中,要处理的数组大多数是N维的。需要说明的是,在物理内存中是不存在N维数组的,限于存储介......
  • 线性数据结构:数组、受限数组(栈、队列)、线性表
    1.数组数组定义  数组(Array)是有序的元素序列。属于线性结构(有且仅有一个前驱、有且仅有一个后继)。数组特点  数组的关键在于在内存中的物理地址对应的是一段连续的内存。这意味着如果想要在任意位置删除/新增一个元素,那么该位置往后的所有元素,都需要往前挪/往后挪一个位......
  • vue3+vite使用vue-pdf-embed或者pdf-vue3预览 PDF 文件(能躲避 XSS 攻击,需要 pdf 文件
    1.使用vue-pdf-embed1.npm安装所需插件[email protected]@0.1.62.封装组件(创建pdfPriview.index文件)<template><divclass="pdf-preview"> <vue-pdf-embed :source="state.source" v-for="pageinstate......
  • Java中的数组-暂未完结
    数组的定义数组是相同类型数据的有序集合数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。◆其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。数组声明创建◆首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的......
  • 【leetcode】数组篇刷题 --滑动窗口
    /**@lcapp=leetcode.cnid=209lang=cpp**[209]长度最小的子数组*找最短的子数组*///@lccode=startclassSolution{public:intminSubArrayLen(inttarget,vector<int>&nums){//滑动窗口,//一个计算总和intsum=0;......
  • Leetcode 560 和为k的子数组
    Problem:560.和为K的子数组难点怎么通过前缀和找到和为k的子数组如官方题解所言,[j···i]的子数组=k可转化为pre[i]-pre[j-1]==k要找到前缀和找到和为k的子数组个数就是“找到当前前缀和pre[i]-之前求得的前缀和=k”的总情况。我们通过哈希表记录每个前缀和(的值)出......
  • 提高组算法-树状数组
    树状数组是当序列动态变化时,依然可以高效率的查询和维护前缀和(或区间和)的数据结构。实现思路现在有\(16\)个数字:\(a[]={1,8,5,9,6,3,9,8,7,2,3,9,6,4,1,7}\)。我们要实现\(2\)个函数:修改其中某个元素的数值。求出前\(n\)个数字的和。但是,这\(2\)个函数要在极......
  • POJ--3468 A Simple Problem with Integers(线段树/树状数组)
    记录11:032024-2-25http://poj.org/problem?id=1961线段树树状数组把区间增加转变为单点增加,利用两个树状数组\(c_0和c_1\)将”Clrd"转化为在树状数组\(c_0\)中,把位置l上的数加d在树状数组\(c_0\)中,把位置r+1上的数减d在树状数组\(c_1\)中,把位置l上的数......
  • 若使用的ts,子组件的props是直接解构好呢还是定义一个接口好呢?
    在TypeScript中,定义子组件的props通常有以下两种方式:接口(Interface)://定义一个接口来描述PropsinterfaceMyComponentProps{title:string;items:string[];onItemSelected:(item:string)=>void;}//在子组件中使用该接口constMyComponent:React.FC......
  • 代码随想录算法训练营第二天| 977.有序数组的平方
    第一题题解首先写了一个初步解,后续再想优化思路classSolution:defsortedSquares(self,nums:List[int])->List[int]:#sortbytheabsofvalueabs_min=10000abs_min_index=0foriinrange(len(nums)):if......