[英]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);
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;
}
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.