当前位置: 首页 > 知识库问答 >
问题:

迭代对象数组并更改每个对象中的一个属性

柯轶
2023-03-14

我发现自己经常遇到这种模式。我有一个从api中返回的对象数组,我只需要操作所有对象中的一个属性。

有没有办法使用ES6/Babel或Typescript让该模式更具声明性?

寻找一些巧妙的破坏技巧或类似的东西。

const data = [{ foo: 1, bar: 2}, 
              { foo: 2, bar: 3},
              { foo: 3, bar: 4}];

const increment = a => a + 1;

// Here is my typical pattern
const result = data.map(o => {
    o.foo = increment(o.foo);
    return o;
})

console.log(result);

共有3个答案

锺离飞飙
2023-03-14

对于原位版本,您可以在对象的键上使用闭包,并将对象作为参数。

const data = [{ foo: 1, bar: 2 }, { foo: 2, bar: 3 }, { foo: 3, bar: 4 }];
const increment = k => o => o[k]++;

data.forEach(increment('foo'));
console.log(data);
黄查猛
2023-03-14

我认为这是一个更优雅的物体。“指定”是更新对象中的项的好方法

js lang-js prettyprint-override">const data = [{
  foo: 1,
  bar: 2
}, {
  foo: 2,
  bar: 3
}, {
  foo: 3,
  bar: 4
}];

const increment = a => a + 1;

// Here is my typical pattern
const result = data.map(o => Object.assign(o, {foo: increment(o.foo)}))

console.log(result);
邓翼
2023-03-14

对象跨距 (...),在 Babel 中使用 Stage 3 预设提供,可以实现以下功能:

js lang-js prettyprint-override">const data = [
  { foo: 1, bar: 2 }, 
  { foo: 2, bar: 3 },
  { foo: 3, bar: 4 },
];

const increment = a => a + 1;

const result = data.map(o => ({ ...o, foo: increment(o.foo) }));
console.log(result);
 类似资料:
  • 本文向大家介绍写一个方法js将数组对象中某个属性值相同的对象合并成一个新对象相关面试题,主要包含被问及写一个方法js将数组对象中某个属性值相同的对象合并成一个新对象时的应答技巧和注意事项,需要的朋友参考一下 function Dog(name,age){ this.name=name; this.age=age; };

  • 我的数组正在加载,并且正在按计划(按照它们在文件中出现的顺序)将卡打印出来。当我尝试在单独的方法中循环遍历arraylist以检查数据是否存在时,它只打印最后一个对象而不是每个对象。有人能告诉我为什么吗? 加载法 和getAll()方法 运行时,它只打印出.txt文件中的最后一张牌“KS”(黑桃之王)。有人能告诉我为什么会这样吗? 谢谢 }

  • Java有没有办法实现这样的目标: 而不是反复输入相同的变量名?谢谢

  • 问题内容: 我需要通过对象属性之一的一个属性比较对象数组。 我在做 : 它没有编译,有人知道怎么做吗? 谢谢。 问题答案: 这是代码中导致错误的部分 您可以创建对特定类型的任意对象的(静态或非静态)方法的引用。对任何类型的对象的方法的引用如下所示: 但是方法引用不是对象,并且没有成员可以访问。使用此代码,您尝试访问引用的成员变量(并且不能) 另外,方法引用不是类,因此您不能从它们中获取另一个方法引

  • 问题内容: 在我目前正在从事的一个项目中,我遇到了一个角度异常: 在寻找解决方案的搜索中,我直接在浏览器中输入了Web服务的URL,但令人惊讶的是,我没有收到预期的数组。 Web服务类: 当我输入网址时,我希望看到带有JSON对象的JSON数组: 但是,相反,我收到的JSON对象的属性与我期望的JSON对象相同,没有任何数组: 所以我想知道为什么没有数组,当我添加另一个Clazz对象时会发生什么。