Jos*_*ran 2 javascript json dictionary object ecmascript-6
可以说我收到一个解析的json,如下所示:
[{"a":1},{"a":2},{"a":3}]
键是相同的a。
我如何使每个a地图都唯一以使地图可用?”
编辑1:
我想要的结果:
let myMap = {}; //I declare my variable
//Then I fetch a json and parse it
fetch(link)
.then(function(response) {
return response.json(); //parse the json string
}).then(function(json) {
myMap = json; //set it to myMap to be used
}
Run Code Online (Sandbox Code Playgroud)
由于某些原因,我有重复的密钥,尽管你们说json是唯一的。我是否必须myMap先将json字符串设置为,然后仅对其进行解析?
基本上,您可以使用Objectas哈希表
var data = [{ "a": 1 }, { "a": 2 }, { "a": 3 }],
object = Object.create(null);
data.forEach(function (el) {
object[el.a] = el;
});
console.log(object);Run Code Online (Sandbox Code Playgroud)
或一个 Map
var data = [{ "a": 1 }, { "a": 2 }, { "a": 3 }],
map = new Map;
data.forEach(function (el) {
map.set(el.a, el);
});
console.log(map.get(1));Run Code Online (Sandbox Code Playgroud)
Map优于Object的优点是,密钥可以是任何东西。密钥不会转换为字符串。映射可以将对象或其他原始值或非原始值作为键。
此外,如果您有单个值列表或想要确保它是唯一的,您可以使用提供的索引,如下所示:
obj.map((item, index) =>
...
)}
Run Code Online (Sandbox Code Playgroud)