我希望有一种简单的方法可以禁止所有不可变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>
答案 0 :(得分:0)
根据docs:
虽然旨在将这些强大的功能概念引入JavaScript,但它提供了Javascript工程师熟悉的面向对象的API,并且与Array,Map和Set
密切相关。
因此set[1]
和[&#34; 1&#34;]存在差异。但是,如果您希望只有字符串值,则可以使用自定义包装器添加字符串版本的键。
以下是样本:
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;