是否可以自动将整数键转换为所有Immutable.js对象的字符串?

时间:2017-02-20 10:35:33

标签: javascript immutable.js

我希望有一种简单的方法可以禁止所有不可变js键的整数键,并在访问时自动将整数转换为字符串。

var a = Immutable.Map({})
a = a.set("1", "string");
a = a.set(1, "integer");
console.log(a.size);     // 2
console.log(a);          // {"1": "string", 1: integer}
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.min.js"></script>

1 个答案:

答案 0 :(得分:0)

根据docs

  

虽然旨在将这些强大的功能概念引入JavaScript,但它提供了Javascript工程师熟悉的面向对象的API,并且与Array,Map和Set

密切相关。

因此set[1]和[&#34; 1&#34;]存在差异。但是,如果您希望只有字符串值,则可以使用自定义包装器添加字符串版本的键。

以下是样本:

&#13;
&#13;
Immutable.Map.prototype.addMyEntry = function(key, value){
  return this.set(key.toString(), value);
}

var a = Immutable.Map({})
a = a.addMyEntry("1", "string");
a = a.addMyEntry(1, "integer");
console.log(a.size)
console.log(a)
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.1/immutable.min.js"></script>
&#13;
&#13;
&#13;