javascript - 使用数组向对象添加属性

标签 javascript arrays mapping

如何使用数组中对象的键将多个属性添加到 ES6 中的子对象?

我有这个:

const data = [{
    id: 'abc-test',
  },
  {
    id: 'xyz-test',
  },
];




const t = {
  a: {
    filters: {
      tOne: [],
    }
  }

};

结果应该是这样的:

const t = {
  a: {
    filters: {
      tOne: [],
      'abc-test': [],
      'xyz-test': [],
    }
  }

};

我尝试过的

...data.map((el) => [el.id]),

如何解决?我知道这可以通过使用 .forEach 来完成,但如果可能的话我想使用另一个 ES6 Array.prototype 函数。

最佳答案

forEach 是一个 Array 函数(或者你喜欢调用它:一个 Array.prototype 函数)。在所有其他 Array 函数中,forEach 最适合您的需要。其他的还有其他的用法。

因此,只需使用 forEach 遍历数组中的对象并将属性直接分配给 t.a.filters:

data.forEach(o => t.a.filters[o.id] = []);

示例:

const data = [ { id: 'abc-test' }, { id: 'xyz-test' } ];

const t = { a: { filters: { tOne: [] } } };

data.forEach(o => t.a.filters[o.id] = []);

console.log(t);

关于javascript - 使用数组向对象添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58906439/

相关文章:

javascript - React 嵌套渲染

c - 如何从函数返回数组到main()

javascript - 在数组中获取 2 in 2 元素

elasticsearch - 在ElasticSearch 7中应用映射

python - 查找两个 numpy 数组之间的索引映射

hibernate - Grails GORM Rest 插件和 Hibernate

javascript - 如何使用 Service Worker 或缓存对象通过 JavaScript 设置缓存过期时间

javascript - 如何在 Google Chrome 开发者工具中获取格式化的控制台消息?

javascript - 原型(prototype)方法中无法访问的变量

c# - 为什么不允许 Array.Count 作为自己的索引值?