合并这样一个对象数组的优雅方式是什么(jQuery 或 JavaScript):
var params = [
{"name":"filter_color","value":"black"},
{"name":"filter_color","value":"blue"},
{"name":"filter_size","value":"l"},
{"name":"filter_size","value":"m"}
];
进入:
var params = [
{"name":"filter_color","value":"black,blue"},
{"name":"filter_size","value":"l,m"}
]
以后在 $.param(params) 中使用?
您可以使用哈希表并按所需键对其进行分组。
function groupBy(array, key, fn) {
var hash = Object.create(null);
return array.reduce(function (r, o) {
if (!hash[o[key]]) {
hash[o[key]] = {};
hash[o[key]][key] = o[key];
r.push(hash[o[key]]);
}
fn(o, hash[o[key]]);
return r;
}, []);
}
var array = [{ name: "filter_color", value: "black" }, { name: "filter_color", value: "blue" }, { name: "filter_size", value: "l" }, { name: "filter_size", value: "m" }],
result = groupBy(array, 'name', function (s, t) {
t.value = t.value ? t.value + ',' + s.value : s.value;
});
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句