对不起,如果json不是完美的,我试图将它输入到Stackoverflow窗口中......无论如何,你可以从下面看到我想把所有单独的对象在数组中并将它们合并到具有匹配url的第一个数组中。一旦它们合并,其他所有其他需要从阵列中删除。通过匹配相同的键值来合并数组中的对象
var myArray = [
{
id: '123',
url: 'http://foo.com/1.jpg',
size: 7,
qty: 1
},
{
id: '345',
url: 'http://foo.com/5.jpg',
color: 'blue',
qty: 5
},
{
id: '678',
url: 'http://foo.com/1.jpg',
size: 8,
qty: 4
}];
我需要让这个数组变成... 下面你可以看到,现在已经匹配URL的对象已经移到第一个匹配对象的变化'的关键。之后他们不再分开。它们基本上都匹配在一起并合并到同一个对象中。
var myArray = [{
id: '123',
url: 'http://foo.com/1.jpg',
variations:[
{
id : '123'
size : 7,
qty: 1
},
{
id : '678'
size : 8,
qty: 4
}],
{
id: '345',
url: 'http://foo.com/5.jpg',
color: 'blue',
qty: 5
}];
到目前为止,我有这样的事情:但这只是工作正在进行中。遇到麻烦带到终点线。
myArray.forEach(function(product, index){
var sizeVariations = [];
var currentSearch = product.url;
var filteredArray = processedProducts.filter(function(obj) {
return obj.primary_image === currentSearch;
});
if(filteredArray){
filteredArray.forEach(function(data, index){
sizeVariations.push({
id : data.id,
size : data.size,
quantity : data.qty
});
});
}
});
你尝试过什么?你有什么需要帮助的?请参阅[*如何创建最小,完整和可验证的示例*](http://stackoverflow.com/help/mcve)。 – RobG
我真的不会建议创建这样一个零碎的数据结构(即一些条目与'变体'和一些没有)。另外,你如何确定'id'是否存在于合并条目的变体之外? – Phil
基本上,如果他们有匹配的url值,那么我需要所有的信息都在同一个对象中 – jremi