很抱歉,如果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的对象现在已经移动到第一个匹配对象的“variations”键中。之后它们不再单独出现。它们本质上都匹配在一起,并合并到同一个对象中。
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
});
});
}
});