javascript – 为每个对象创建唯一ID
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 为每个对象创建唯一ID,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2332字,纯文字阅读大概需要4分钟。
内容图文
![javascript – 为每个对象创建唯一ID](/upload/InfoBanner/zyjiaocheng/782/bacb589fa8b749f9b3b1f6b30f013d54.jpg)
概述:有一组产品组对象,每个产品组都有一系列项目.具有唯一ID但是items数组的产品组对象没有分配任何唯一ID.请在下面找到JSON对象.
const productList = [{
productGroup : 'PG1',
index: 1,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}, {
productGroup : 'PG2',
index: 2,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}];
要求:根据产品组为items数组的每个item对象分配一些唯一ID.
我到目前为止尝试过:working solution : concat index of product group with the index of each list items
const productList = [{
productGroup : 'PG1',
index: 1,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}, {
productGroup : 'PG2',
index: 2,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}];
const itemList = productList.map(obj => {
obj.items.map((itemObj, index) => {
itemObj.productGroup = obj.productGroup;
itemObj.pgIndex = obj.index;
itemObj.itemIndex = obj.index + '' + index;
});
return obj.items;
});
var mergedListItems = itemList.reduce((arr, arrNext) => arr.concat(arrNext));
console.log('mergedListItems', mergedListItems);
这种做法好吗?如果不是,那么请你帮我找到最好的方法来做到这一点.
解决方法:
您可以立即减少到输出数组中,而不是多次遍历项目:
const productList = [{
productGroup : 'PG1',
index: 1,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}, {
productGroup : 'PG2',
index: 2,
items: [{
item1: 'item1 value',
item2: 'item2 value'
},{
item1: 'item1 value',
item2: 'item2 value'
}]
}];
const mergedListItems = productList.reduce((a, { productGroup, index, items }) => {
items.forEach((itemObj, itemIndex) => {
a.push({
...itemObj,
productGroup,
pgIndex: index,
itemIndex: `${index}${itemIndex}`
});
});
return a;
}, []);
console.log(mergedListItems);
另请注意,您的潜在问题
itemObj.itemIndex = obj.index + '' + index;
逻辑 – 如果任一索引大于10,该怎么办?然后,您可能会看到一个itemIndex为例如111的项目.这意味着什么,它是指原始对象的索引是11,还是项目索引11?如果可能,请考虑在它们之间放置下划线或某些分隔符
itemObj.itemIndex = obj.index + '_' + index;
或者,使用像我的代码中的模板文字
itemIndex: `${index}_${itemIndex}`
内容总结
以上是互联网集市为您收集整理的javascript – 为每个对象创建唯一ID全部内容,希望文章能够帮你解决javascript – 为每个对象创建唯一ID所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。