javascript - 使用 Set .forEach() 将项目添加到对象的指定属性

标签 javascript object foreach set

我有一个函数,它返回一组列号和一个使用某些属性定义的对象

for (let row of excelSheet)
{
  let item = {
    property1: row[column]
    property2: row[column]
    property3: row[column]
  }
}

假设属性 3 的值可以在多个列中找到,因此从该列返回的集合具有多个值。我尝试将 property3: 设置为

row[Number(columnSet.foreach(function(v){return v})]

但是,该项目中似乎没有填充任何内容,并且控制台记录该属性未定义。有没有更好的方法来解决这个问题?

最佳答案

如果有多个值,您可能需要一个数组。使用 .map 迭代 Set 并访问相应的行,以便 item.property3 的值是 row[column]< 值的数组s:

property3: [...columnSet].map(column => row[column])

const columnSet = new Set([2, 4]);
const row = [0, 1, 2, 3, 4, 5];
const obj = {
  property3: [...columnSet].map(column => row[column])
};

console.log(obj);

关于javascript - 使用 Set .forEach() 将项目添加到对象的指定属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60330616/

相关文章:

javascript - 使用 forEach 方法更改项目的属性 (javascript)

algorithm - 基于公式消除两个表之间的观察

javascript - 部分/内部链接 - 在点击上方留下边距

javascript - 注释掉的变量在 Javascript 中抛出错误

javascript - 为什么模块级返回语句在 Node.js 中起作用?

javascript - javascript 输出对象数组

php - Foreach不插入MySQL的字段

javascript - 通过 Angular 指令上传图像并在 DOM 上显示

javascript - 将对象数组转换为单个对象

javascript - 检查对象数组中是否存在变量的条件