【问题标题】:loop through array of objects using ramda [duplicate]使用ramda循环遍历对象数组[重复]
【发布时间】:2020-01-13 12:25:36
【问题描述】:

我有一个这样的对象数组。

0:
cardLast4Digits: "0664"
cardType: "GIFT_CARD"
__proto__: Object
1:
cardLast4Digits: "5551"
cardType: "CREDIT_CARD"
__proto__: Object

我想遍历这个对象数组并查找 cardType 是否为“GIFT_CARD”。一旦我找到它,我想得到那个对象。输出应该是

0:
cardLast4Digits: "0664"
cardType: "GIFT_CARD"
__proto__: Object

有人可以建议我如何使用 v ramda 来做这件事。

【问题讨论】:

  • 为什么会被标记为重复并关闭?他特别要求使用 Ramda 的解决方案,而上一个答案的链接没有这样做。
  • R.find(R.eqProps('GIFT_CARD', cardType), yourArrayOfObjects)
  • @bdbdbd 更新为 ramda 副本。请@<username>通知用户。
  • @adiga 谢谢,我不知道,谢谢更新

标签: javascript arrays reactjs object


【解决方案1】:

只需使用数组查找方法:https://ramdajs.com/docs/#find

拉姆达:

const items = [{
  cardLast4Digits: '0664',
  cardType: 'GIFT_CARD'
}, {
  cardLast4Digits: '5551',
  cardType: 'CREDIT_CARD'
}];
R.find(R.propEq('cardType', 'GIFT_CARD'))(items);

ES6:

const items = [{
  cardLast4Digits: '0664',
  cardType: 'GIFT_CARD'
}, {
  cardLast4Digits: '5551',
  cardType: 'CREDIT_CARD'
}];

const result = items.find(item => item.cardType === 'GIFT_CARD');
console.log(result);

【讨论】:

  • 那仍然没有使用 Ramda,而只是内置了 JS 的 find 方法。 R.find(R.eqProps('cardType', 'GIFT_CARD'))(items) 是 Ramda 方式。
猜你喜欢
  • 2018-04-01
  • 1970-01-01
  • 2016-07-08
  • 2015-03-18
  • 2015-05-16
  • 2016-09-07
  • 1970-01-01
  • 2019-12-16
  • 1970-01-01
相关资源
最近更新 更多