Javascript 在数组​;上…var意味着什么;。原型&x200B;。地图()

Javascript 在数组​;上…var意味着什么;。原型&x200B;。地图(),javascript,arrays,object,ecmascript-6,array.prototype.map,Javascript,Arrays,Object,Ecmascript 6,Array.prototype.map,我对创建匿名函数和使用map相当陌生,…我在下面几行代码中的意思是什么。短暂性脑缺血发作 const airlines=this.state.airlines.map(i=>( {…i,编辑:this.state.editing&&i==item} ) )它被称为,在当前上下文中,它涉及复制对象。这与这样做是一样的: const airlines = this.state.airlines.map(object => {    object.editing = this.state.ed

我对创建匿名函数和使用map相当陌生,
…我在下面几行代码中的意思是什么。短暂性脑缺血发作

const airlines=this.state.airlines.map(i=>(
{…i,编辑:this.state.editing&&i==item}
)
)

它被称为,在当前上下文中,它涉及复制对象。这与这样做是一样的:

const airlines = this.state.airlines.map(object => {
    object.editing = this.state.editing && object === item;
    return object;
});
所以我们要做的是创建对象的浅层副本,然后向其中添加属性。这就是spread syntax(扩展语法)的目的——创建浅层副本,或为浅层副本收集项(称为rest语法——收集其余项)。下面是一个扩展语法的简化示例:

const arr=[{
姓名:“杰克”
}, {
姓名:“乔”
}];    
常量res=arr.map(e=>({…e,
年龄:无限
}));    
控制台日志(res)
。作为控制台包装器{
最大高度:100%!重要;
顶部:自动;

}
它是扩展运算符。i、 e
{…{a:1,b:2},c:3}
{a:1,b:2,c:3}
[…[1,2,3],4]
[1,2,3,4]
@user202729是的,对
映射
返回的对象的键进行赋值callback@Kaiido再次阅读链接的问答之后,看起来答案包括object的扩展语法,但不是问题。也许问题的标题应该更改。@user202729我们目前无法判断什么是
i
。链接问题处理最常见的情况(对象和数组),我怀疑OP使用的是一个有自己符号的外来对象。迭代器。