lambdajavascript的正确语法

lambdajavascript的正确语法,javascript,foreach,lambda,Javascript,Foreach,Lambda,我试图使用forEach lambda在对象内设置一些值: var row = {title: "", attribute:"", width: ""}; list.forEach( list => row.title = list.label | row.attribute = list.label | row.width = "300px" );

我试图使用forEach lambda在对象内设置一些值:

 var row = {title: "", attribute:"", width: ""};
 list.forEach( list =>
                 row.title = list.label |
                 row.attribute = list.label |
                 row.width = "300px"    
              );
当我添加其余参数时,只有语句
row.title=list.label
才能正常工作


什么是正确的语法?

您需要大括号,因为
=>
后面的部分是函数体:

 var row = {title: "", attribute:"", width: ""};
 list.forEach( list => {
   row.title = list.label;
   row.attribute = list.label;
   row.width = "300px";
 });
(请注意,如果这是您实际运行的代码,
行中的值将设置为列表中最后一项的值。)

尝试:

 var row = {title: "", attribute:"", width: ""};
 list.forEach( list => {
                 row.title = list.label;
                 row.attribute = list.label;
                 row.width = "300px"    
              });

请注意大括号。

您应该用大括号将非返回语句包装在arrow函数中:

var列表=[
{标签:'一'},
{label:'two'},
{标签:'三'}
];
变量行={title:,属性:,宽度:};
list.forEach(list=>{
row.title=list.label;
row.attribute=list.label;
row.width=“300px”;
console.log('行是',行);
console.log();

});目前的
将保存.forEach的每个循环中的数据,因此您将只获取最后一个处理元素的数据。您希望创建一个新对象来存储这些循环中“每个”的数据,然后创建一个填充的数组

var Row = (title, attribute, width) => {
  this.title = title;
  this.attribute = attribute;
  this.width = width;
};

var rows = [];
list.forEach( item => { 
  rows.push(new Row(list.label, list.label, "300px"));
});
或者,
map
函数可以用更少的代码完成您想要的任务

var rows = list.map( ( item ) => {
  return new Row(item.label, item.label, "300px");
});

请注意,“lambda”一词实际上从未在JavaScript中使用过。“lambda”在JS中被称为“匿名函数”。我认为它被称为箭头函数。您是否尝试过
{}
?请看,我不确定您的代码是否说明了您的观点:请注意,您有一个名为
item
的变量,但您没有使用它(在第一个代码段中)