给对象分配一个数组中对象的随机属性

时间:2018-07-17 18:04:36

标签: javascript arrays

我在一个数组中有30个对象。每个对象中的属性之一是question_order。我想做一个JavaScript函数,给对象一个顺序。为此,我需要为每个对象的属性question_order赋予1-30的数字,并且每个question_order数必须是唯一的。最好的方法是什么?谢谢!

1 个答案:

答案 0 :(得分:0)

您可以创建一个索引数组,如果有则改组。然后,您可以遍历您的项目并根据改组后的数组分配一个question_order: 函数shuffle(array){     var index = array.length;     而(--index> 0){         让randIndex = Math.floor(Math.random()* index);         [array [index],array [randIndex]] = [array [randIndex],array [index]];     }     返回数组;   } 让项目= [     {name:0},     {name:1},     {name:2},     {name:3},     {名称:4} ] //创建一个索引arr,即[0,1,2,3]与项的长度相同 让索引= shuffle(Array.from({length:items.length},(_,i)=> i)) //添加问题顺序 items.forEach((item,index)=> item.question_order = indexs [index]) console.log(项目) 但是,如果您已经可以重新整理数组,为什么不整理一下原来的数组并为自己节省额外的工作: 函数shuffle(array){     var index = array.length;     而(--index> 0){         让randIndex = Math.floor(Math.random()* index);         [array [index],array [randIndex]] = [array [randIndex],array [index]];     }     返回数组;   } 让项目= [     {name:0},     {name:1},     {name:2},     {name:3},     {名称:4} ] console.log(随机播放(项目))