gpt4 book ai didi

javascript - 从已删除/重复的对象中提取属性,然后分配给其他对象

转载 作者:行者123 更新时间:2023-12-02 14:17:37 24 4
gpt4 key购买 nike

我在这里需要一点帮助,你有这个数组:

[
{Code:13938, Country:699, Name:"Crocs", codeProduct:1}
{Code:13952, Country:699, Name:"Polo Club", codeProduct:14}
{Code:13952, Country:699, Name:"Polo Club", codeProduct:1}
{Code:13952, Country:699, Name:"Polo Club", codeProduct:3}
{Code:13953, Country:699, Name:"OZ", codeProduct:12}
....
]

我需要转换成这样:

[
{Code:13938, Country:699, Name:"Crocs", codeProduct:1}
{Code:13952, Country:699, Name:"Polo Club", codeProduct:"14, 1, 3" }
{Code:13953, Country:699, Name:"Polo Club", codeProduct:12}
]

我可以毫无问题地删除重复的对象并获取这些删除的对象的值。

var prodArray = [];

function uniq_fast(a) {
var seen = {};
var out = [];
var len = a.length;
var j = 0;
for(var i = 0; i < len; i++) {
var item = a[i].Codigo;
if(seen[item] !== 1) {
seen[item] = 1;
out[j++] = a[i];
}else{
prodArray.push({Code:item, codeProduct:a[i].TipoProductoCodigo});
}
}
return out;
}

这将返回一个新的对象数组,其中不包含重复的值,并将已删除对象的属性添加到新数组 prodArray 中。

// out return this:
[
{Code:13938, Country:699, Name:"Crocs", codeProduct:1}
{Code:13952, Country:699, Name:"Polo Club", codeProduct:"14, 1, 3" }
{Code:13953, Country:699, Name:"Polo Club", codeProduct:12}

]

prodArr返回这个:

[
{Code:13952, codeProduct:1}
{Code:13952, codeProduct:3}
]

但是我如何将 prodArray 中的属性设置为保存不重复对象的新数组?

希望我已经说清楚了

最佳答案

您可以使用哈希表作为对代码的引用。

var data = [{ Code: 13938, Country: 699, Name: "Crocs", codeProduct: 1 },  { Code: 13952, Country: 699, Name: "Polo Club", codeProduct: 14 }, { Code: 13952, Country: 699, Name: "Polo Club", codeProduct: 1 }, { Code: 13952, Country: 699, Name: "Polo Club", codeProduct: 3 }, { Code: 13953, Country: 699, Name: "OZ", codeProduct: 12 }],
grouped = [];

data.forEach(function (a) {
if (!this[a.Code]) {
this[a.Code] = { Code: a.Code, Country: a.Country, Name: a.Name, codeProduct: a.codeProduct };
grouped.push(this[a.Code]);
return;
}
this[a.Code].codeProduct += ', ' + a.codeProduct;
}, Object.create(null));
console.log(grouped);

关于javascript - 从已删除/重复的对象中提取属性,然后分配给其他对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38903455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com