javascript - 这是如何工作的“elements.map(({ length :lengthFooBArX }) => lengthFooBArX);”
问题描述
我在这里阅读箭头函数(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#Shorter_functions)但是不明白这两个部分是如何工作的?
var elements = [
'Hydrogen',
'Helium',
'Lithium',
'Beryllium'
];
elements.map(({ length :lengthFooBArX }) => lengthFooBArX); // [8, 6, 7, 9]
elements.map(({ length }) => length); // [8, 6, 7, 9]
解决方案
代码正在解构函数参数。
elements.map(({ length }) => length);
和
elements.map(x => x.length);
在第一个示例中,代码创建了一个局部变量以调用回调lengthFooBArX
并将该变量分配给length
元素的属性。
第一个代码相当于。
elements.map(x => {
let lengthFooBArX = x.length;
return lengthFoBArX;
}
解构的语法是
let {length} = x;
//is same as
let length = x.length;
如果变量名和属性名不同,则
let {length:otherName} = x;
//is same as
let otherName = x.length;
推荐阅读
- css - How to make my boostrap header fixed on scrolling
- wordpress - WordPress 隐形页面
- ios - 为什么我会收到上传错误 ITMS-90680 和 ITMS-90171
- apache - .htaccess rewrite - filename.html to /?c=filename
- javascript - 使用for循环-AngularJS推送方法()后无法显示新的空数组
- java - 在R中组合/排列不同数据帧/文件的多个单元格
- json - 如何解析 Unmarshaled 结构中的引用
- docker - Docker :: 如何查看由 Docker for Mac 制作的图像中的包装?
- path - 网络共享脚本 - 自动检查驱动器号和路径
- c# - 需要转换代码以选择随机行并显示