首页 > 解决方案 > ...var 在 Array​.prototype​.map() 上的含义是什么

问题描述

我在创建匿名函数和使用地图方面相当陌生,...i以下代码行的含义是什么。蒂亚

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

标签: javascriptarraysobjectecmascript-6array.prototype.map

解决方案


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

const airlines = this.state.airlines.map(object => {
    object.editing = this.state.editing && object === item;
    return object;
});

所以我们要做的是创建对象的浅表副本,并为其添加属性。这是传播语法的目的——制作浅拷贝,或为浅拷贝收集项目(称为休息语法——收集其余项目)。这是扩展语法的简化示例:

const arr = [{
  name: "Jack"
}, {
  name: "Joe"
}];    
const res = arr.map(e => ({ ...e,
  age: Infinity
}));    
console.log(res);
.as-console-wrapper {
  max-height: 100% !important;
  top: auto;
}


推荐阅读