如何在javascript中实现唯一键值集?

如何在javascript中实现唯一键值集?,javascript,Javascript,我正在寻找一种优雅的方法来实现javascript中的唯一键值集 我有一个如下所示的对象: { "name" : "admin", "type" : "users", "id" : "53cf50b32508adc39b0cc566" }, { "name" : "admin2", "type" : "users", "id" : "53cf50b32508adc39b0cc566" } 我想创建一个数组/集合,该数组/集合的键为id,值为nam

我正在寻找一种优雅的方法来实现javascript中的唯一键值集

我有一个如下所示的对象:

{
    "name" : "admin",
    "type" : "users",
    "id" : "53cf50b32508adc39b0cc566"
},
{
    "name" : "admin2",
    "type" : "users",
    "id" : "53cf50b32508adc39b0cc566"
}
我想创建一个数组/集合,该数组/集合的键为id,值为name,type

设置必须是唯一的

结果应该是

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 out={};
对于(变量i=0,l=arr.length;i

您可以使用类似的方法:

    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("")
        }
var person=newobject();
var uid=createGuid();
person[uid]={name:“admin”};
控制台日志(个人);
函数createGuid(){
var g=“0123456789abcdef”。拆分(“”);
var e=[];
var h;
对于(var f=0;f<32;f++){
h=数学地板(数学随机()*16);
如果(f==16){
e[f]=g[(h&3)| 8]
}否则{
e[f]=g[h]
}
}
e[12]=“4”;
返回e.join(“”)
}

@NishanthiGrashia这不是唯一的也许你可以使用$.now()?@MuhammetArslan我需要它在javascript中我没有jquery我在使用angularJs,但它如何帮助我呢?你的意思是:
var obj={53cf50b32508adc39b0cc566':{name:'admin',type:'users'}?我想要一个迭代json并生成此类对象数组的代码这就是它的意思,我需要它unique@LiadLivnat注意,你应该在第一轮提问中包含所有相关信息。谢谢安迪,这就是我所需要的!很抱歉,这不是我的意思,我需要一个唯一的列表,不是guid,而是检查一个现有的数组并从中创建唯一的列表。
var a=[],person=new Object();person={name:“admin”,type:“admin”,id:“545421fdsfvdb”};var id=person.id;a[id]=[];删除person.id a[id]。推送(person);控制台日志(a)是吗?