【问题标题】:Searching an immutable JS Map搜索不可变的 JS 地图
【发布时间】:2015-07-25 18:38:17
【问题描述】:

您能否建议最有效的搜索 Immutable.Map 值的方法?我正在寻找返回第一场比赛。

https://facebook.github.io/immutable-js/

我相信我应该得到一个map.valueSeq() 并从那里开始。我正在尝试做这样的事情:

Immutable= require("immutable")
var keys = Immutable.Map()
k=keys.set(1,2)
var result = null
k.valueSeq().map(
    function(value) {
        if(value == 2)
            result = value
    }
)
return result

我想坚持使用 Map 数据结构,它在代码的其他地方使用。

【问题讨论】:

  • 您到底在寻找什么?如果你有价值,为什么你需要查找它?还是要按键查找值?

标签: javascript immutable.js


【解决方案1】:

你可以使用.find:

var Immutable = require("immutable");
var map = Immutable.Map();
var m = map.set(1,2);
return m.find(function(val) {
    return val === 2;
});

您也可以使用m.valueSeq().find

【讨论】:

  • 返回值实际上应该读作 return m.find(function(val) { return val === 2; });
  • @BenBud 好收获!固定。
【解决方案2】:

不可变的.Map.Find

例子

var map = Immutable.Map()
map = map.set(1,2) //set or add data to map
var criteria=2;
var finded=map.find(function(data,key) {
    return data===criteria;//return the first value of data that return true
}, null);//return null if not found data

参见 jsfiddle: https://jsfiddle.net/fyr5nk4x/

【讨论】:

  • 不幸的是,这似乎不起作用。您似乎无法使用 .find() 设置默认值?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-08-03
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多