为什么Ramdajs.filter()在我的代码和Ramdajs.find()中不起作用?

时间:2016-01-19 15:48:56

标签: ramda.js

我有像

这样的js对象
var storage = [
1:{"index":1, "label": abc, "value": 33},
2:{"index":2, "label": def, "value": 43},
etc.
];

所以,现在我需要提取一个给定的内部对象,给出一个"标签"值

我找到了工作:

R.filter( R.propEq( "label", labelname ), storage )

但是find()没有工作:

R.find( R.propEq( 'label', labelname ))( storage )

任何人都可以告诉我这个吗?

1 个答案:

答案 0 :(得分:1)

我对你的数据结构有点困惑。这样做,filterfind似乎都可以正常工作:

var abc = "ABC", def = "DEF";

var storage = [
  {"index":1, "label": abc, "value": 33},
  {"index":2, "label": def, "value": 43},
  {"index":1, "label": abc, "value": 53},
];

var labelname = abc;

R.filter( R.propEq( "label", labelname ), storage );
//=> [{"index":1,"label":"ABC","value":33},{"index":1,"label":"ABC","value":53}]
R.find( R.propEq( "label", labelname ), storage );
//=> {"index":1,"label":"ABC","value":33}

您可以在 the Ramda REPL 上看到这一点。

记录开头的那些额外索引号是什么?:

var storage = [
1:{"index":1, "label": abc, "value": 33},
^
 \---- What's this?