Javascript 对(.map())函数的参数表示赞许

Javascript 对(.map())函数的参数表示赞许,javascript,arrays,Javascript,Arrays,我正在查看其他人在stackoverflow()上的代码,发现了一些奇怪的东西。这是我以前从未见过的。而且,我找不到任何文档 此代码(基于答案中的代码)是一个示例: let数据=[ {记录:“productId*金额*tax1*tax2*tax3”,id:467}, {记录:“111*2000*10*12*13”,识别号:278}, {记录:“113*3000*10**”,识别号:787} ]; 让id=data.map(({id})=>console.log(id))是的,它被称为解构 他

我正在查看其他人在stackoverflow()上的代码,发现了一些奇怪的东西。这是我以前从未见过的。而且,我找不到任何文档

此代码(基于答案中的代码)是一个示例:

let数据=[
{记录:“productId*金额*tax1*tax2*tax3”,id:467},
{记录:“111*2000*10*12*13”,识别号:278},
{记录:“113*3000*10**”,识别号:787}
];

让id=data.map(({id})=>console.log(id))是的,它被称为
解构


他从参数对象中解构属性
id

,这将适用于任何对象,而不仅仅是映射数组方法。假设您有一个对象数据

const data= {name: "price", value: 111};
您可以通过以下两种方式访问该值

const value = data.value

const {value} = data

是的,在ES6及以上版本中,引入了用于分解结构的功能。在本例中,传递到map函数的参数是数据数组中对象的属性id。请参见下面的场景:

// create an object with id and label
const originalObj = { id: 1, label: 'First Item' };
/* create values from keys in object done via destructuring.  
   Here we get the values of the keys in the object by enclosing the 
   keys in the declaration 
   and set it equal the object
   with the properties. This will create 
   variables id and label and set them to 
   values 1 and 'First Item'.  This is what is happening in the map 
   call 
*/
const { id, label } = originalObj;

我已经知道了解构(虽然显然不是完全了解)。由于其他答案不是关于函数参数,或者只是给出一个链接,我将自己回答

在developer.mozilla.org上,它被称为从作为函数参数传递的对象中解包字段。举一个非常清楚的例子:

const user = {
  id: 42,
  displayName: 'jdoe',
  fullName: {
    firstName: 'John',
    lastName: 'Doe'
  }
};

function userId({id}) {
  return id;
}

function whois({displayName, fullName: {firstName: name}}) {
  return `${displayName} is ${name}`;
}

console.log(userId(user)); // 42
console.log(whois(user));  // "jdoe is John"