[英]How to implement unique key value set in javascript?
我正在尋找一種實現javascript中唯一鍵值集的優雅方法,
我有一個看起來像下面的對象:
{
"name" : "admin",
"type" : "users",
"id" : "53cf50b32508adc39b0cc566"
},
{
"name" : "admin2",
"type" : "users",
"id" : "53cf50b32508adc39b0cc566"
}
我想創建將id作為鍵和名稱,類型作為值的數組/集。
該集合必須是唯一的!
結果應該
array : [53cf50b32508adc39b0cc566 : {"name" : "admin2","type" : "users"}]
該ID僅應出現一次
有什么建議么?
您所犯的錯誤是您想要擁有JavaScript不允許的數據結構:
array: [53cf50b32508adc39b0cc566 : {"name" : "admin2","type" : "users"}]
上一行沒有意義,將導致錯誤。
假設您要通過鍵訪問數據,並且當前數據位於數組中,那么您要做的就是創建一個新對象,然后遍歷已解析的JSON,將每個對象作為值添加到新的鍵id中。
var out = {};
for (var i = 0, l = arr.length; i < l; i++) {
out[arr[i].id] = {
name: arr[i].name,
type: arr[i].type
};
}
您可以使用類似這樣的東西:
var person = new Object();
var uid = createGuid();
person[uid] = { name : "admin" };
console.log(person);
function createGuid(){
var g = "0123456789abcdef".split("");
var e = [];
var h;
for (var f = 0; f < 32; f++) {
h = Math.floor(Math.random() * 16);
if (f == 16) {
e[f] = g[(h & 3) | 8]
} else {
e[f] = g[h]
}
}
e[12] = "4";
return e.join("")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.