为什么 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 )
谁能给我讲讲这个?
我对你的数据结构有点困惑。这样做,filter
和 find
似乎都可以正常工作:
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?
我有一个像
这样的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 )
谁能给我讲讲这个?
我对你的数据结构有点困惑。这样做,filter
和 find
似乎都可以正常工作:
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?