繁体   English   中英

如何在函数定义中使用ES6多个重构参数?

[英]How to use ES6 multiple destructured arguments in function definition?

我想知道当两个参数为同一类型时如何使用赋予函数的多个结构化参数。
例如,考虑我有以下代码:

var items = [
  { name: 'Edward', value: 21 },
  { name: 'Sharpe', value: 37 },
  { name: 'And', value: 45 },
  { name: 'The', value: -12 },
  { name: 'Magnetic', value: 13 },
  { name: 'Zeros', value: 37 }
];
// sort by name
items.sort(function(a, b) {
  var nameA = a.name.toUpperCase(); // ignore upper and lowercase
  var nameB = b.name.toUpperCase(); // ignore upper and lowercase
  if (nameA < nameB) {
    return -1;
  }
  if (nameA > nameB) {
    return 1;
  }

  // names must be equal
  return 0;
});

现在,您可以看到,该函数中仅使用了ab对象的name属性。 因此,我将如何使用对象分解来更改代码,如下所示:

items.sort(({name}, {name}) => {
  // code to use
});

您可以在销毁期间分配其他名称:

items.sort(({name : A}, {name : B}) => 
  A.toUpperCase().localeCompare(B.toUpperCase())
);

(并且您可以使用localeCompare代替if else逻辑)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM