如何使用 ES6 扩展运算符和剩余运算符从数组或对象中删除特定元素

Posted

技术标签:

【中文标题】如何使用 ES6 扩展运算符和剩余运算符从数组或对象中删除特定元素【英文标题】:How to remove specific element from a array or object using ES6 spread operators and rest operators 【发布时间】:2018-08-21 07:00:18 【问题描述】:

我想做这样的事情。 有类似的对象

obj =  a: "xxx", b: "xxx", c: "xxx", d: "xxx", e: "xxx", f: "xxx" 

我想删除属性 cd 的值并将它们放入数组中,例如 arr = ["xxx" , "xxx"] 。然后我想把这个数组添加到obj对象中作为

obj =  a: "xxx", b: "xxx",  c: ["xxx", "xxx"], e: "xxx", f: "xxx" 

那么有没有办法使用 ES6 扩展和休息运算符来实现这一点

如果我必须删除 n 个数字的值(未知它可以是 1 或 2 或 3 ..)属性并将它们放入数组中,我已经解释过,该怎么做

【问题讨论】:

欢迎来到 ***。请阅读此how to ask 为什么 'f' 被添加到你的新 json obj 中? @G_S 我在那里。由于格式不正确,刚刚换行。 如果属性及其编号未知,则不能使用rest/spread语法。 ... is not an operator,并且对象休息/传播属性不是 ES6 的一部分。今年将与 ES9 一起推出。 【参考方案1】:

您可以使用解构和临时常量来做到这一点。

const obj = a:"xxx" , b:"xxx", c:"xxx" , d:"xxx" , e:"xxx", f:"xxx"

const  c, d, ...rest = obj; // pick props you want to remove and keep rest

// create a new object by spreading `rest` and adding new property
console.log(...rest, c: [c, d]);

【讨论】:

以上是关于如何使用 ES6 扩展运算符和剩余运算符从数组或对象中删除特定元素的主要内容,如果未能解决你的问题,请参考以下文章

ES6躬行记——扩展运算符和剩余参数

ES6扩展——函数扩展之剩余函数

ES6 从入门到精通 # 05:函数之扩展运算符箭头函数

ES6 从入门到精通 # 05:函数之扩展运算符箭头函数

ES6 扩展运算符

ES6扩展/收集运算符--spread/rest