为什么 Ramdajs.filter() 在我的代码中有效而 Ramdajs.find() 无效?

Why Ramdajs.filter() works in my code and Ramdajs.find() not?

我有一个像

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

所以,现在我需要在给定 "label" 值

的情况下提取给定的内部对象

我发现工作:

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

但是 find() 不工作:

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

谁能给我讲讲这个?

我对你的数据结构有点困惑。这样做,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?