如何使用扩展运算符将对象数组推入特定元素

Posted

技术标签:

【中文标题】如何使用扩展运算符将对象数组推入特定元素【英文标题】:How to push into an array of object using the spread operator to a specific element 【发布时间】:2019-02-21 03:05:50 【问题描述】:

我有一个这样的数组

const arr = [a= , b=]

现在我知道扩展运算符不适用于突变或推送,但它很容易做到。

我希望此按钮在按下时向a 添加元素

 <Button
title= this.props.title
 onPress= this.roomNumberPressed 
 />

所以最终结果是这样的:

arr = [a=1,2,3 , b=3,4,5]

【问题讨论】:

注意:... 不是,也不能是一个运算符,既不能用于展开也不能用于休息。它可以做运营商做不到的事情。 Details. const arr = [a= , b=] 不是有效的语法。你有一个数组,还是一个具有ab 属性的对象? 也许你的意思是a: [], b: [] 【参考方案1】:

我希望此按钮在按下时向a 添加元素

正如您在问题中所说,扩展符号不适用于添加到现有对象。您的选择是:

    使用 spread 创建一个new 对象并将该新对象分配给a

    a = ...a, ...theNewPropertiesToAdd;
    

    使用Object.assign 将新属性添加到现有 a

    Object.assign(a, theNewPropertiesToAdd);
    

请注意,我刚刚在上面使用了a,因为您的const arr = [a=, b=] 是语法错误,我无法判断您的意思是否是const arr = [, ](在这种情况下,上面的aarr[0]),或者const arr = a: , b: (在这种情况下,上面的 aarr.a [而 arr 不是数组])。

【讨论】:

@Kuchi - 你不会将东西“附加”到变量中。你分配他们。

以上是关于如何使用扩展运算符将对象数组推入特定元素的主要内容,如果未能解决你的问题,请参考以下文章

无法在 React 中使用扩展运算符更新状态

在对象数组上使用扩展运算符来访问元素[重复]

ES6 扩展运算符

ES6-05:数组的扩展

React/Redux - 使用扩展运算符将对象添加到数组的开头

如何在 react-redux 中使用扩展运算符修改索引处的特定对象?