繁体   English   中英

如何为数组中的每个对象添加唯一 ID?

[英]How can I add a unique ID to each object in an array?

我有这个对象数组,我正在尝试为每个对象添加一个唯一的 id 以获得所需的输出,如下所示。但是由于我是 Javascript 新手,这对我来说有点困难,请有人帮助我。

这是我的数组对象输入:

const list =  [

     {"value": "Tape Measure"},
     
     {"value": "Lawn Mower"}
  ],

]

这是我想要的具有唯一 ID 的输出:

const desiredOuput = [
  {
    "id": "ur95tnnt949003",
    "value": "Tape Measure",
  },
  {
    "id": "0698080805kg",
    "value": "Lawn Mower",
  },

]

 const list = [{ "data": [{ "value": "Tape Measure" }, { "value": "Lawn Mower" } ], "name": "Garden Todo", }] const res = list.map(o => { o.data = o.data.map(d => ({ ...d, id: randomId() })); return o; }) console.log(res) // Change this as desired function randomId() { return Math.random() }

这是生成randId的示例方法。 在该方法中,1) 考虑数字 (0-9) 和小写字母 (az) 的混合。 2)所需的randId长度(大小参数)

 const randId = (size) => { const nums = Array.from({ length: 10 }, (_, i) => String.fromCharCode("0".charCodeAt(0) + i) ); const alphabets = Array.from({ length: 26 }, (_, i) => String.fromCharCode("a".charCodeAt(0) + i) ); const chars = [...nums, ...alphabets]; const rand = (length) => Math.floor(Math.random() * length); return Array.from({ length: size }, () => chars[rand(chars.length)]).join(""); }; const list = [{ value: "Tape Measure" }, { value: "Lawn Mower" }]; const newlist = list.map(({ value }) => ({ value, id: randId(6) })); console.log(newlist);

尝试这个...

 const list = [{ "data": [{ "value": "Tape Measure" }, { "value": "Lawn Mower" } ], "name": "Garden Todo", }] const result = list.map(l => { l.data = l.data.map(d => ({id:Math.floor(Math.random() * Date.now()), ...d})); return l; }) console.log(result);

  • 此功能将为您提供完全唯一的 id
function genID() {
    const timeStamp = Date.now();
    let str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    let Id = '';
    for (let i = 0; i < 7; i++) {
        let rom = Math.floor(1 +(str.length -1)*Math.random());
        Id += str.charAt(rom);
    }
    Id += timeStamp.toString();
    return Id;
}
  • 您也可以只使用 timeStamp
let id = Date.now();

npm install uuid

然后:

const { v4: uuidv4 } = require('uuid');

list.forEach(el=> el.id = uuidv4());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM