这是一个选择:
var array = [{ name: "foo1", value: "val1"}, { name: "foo1", value: ["val2", "val3"]}, { name: "foo2", value: "val4"}];var output = [];array.forEach(function(item) { var existing = output.filter(function(v, i) { return v.name == item.name; }); if (existing.length) { var existingIndex = output.indexOf(existing[0]); output[existingIndex].value = output[existingIndex].value.concat(item.value); } else { if (typeof item.value == 'string') item.value = [item.value]; output.push(item); }});console.dir(output);


