如下数组
["a=1","a=2","a=4","b=2","c=2","c=4"]
将其用js处理后变为
["a=124","b=2","c=24"]
求个js写法想了一天了不知道要怎么写
用 Map ,如果存在,就拼接,如果不存在,就插入,代码为:
var array = ["a=1","a=2","a=4","b=2","c=2","c=4"];
var result = {};
//遍历数组元素,用等号分隔后处理
for(var i=0;i<array.length;i++){
var temp = array[i];
var split = temp.split("=");
var key = split[0];
var value = split[1];
if(result[key]!=undefined){//存在,则拼接
result[key] = result[key]+''+value;//旧值加新值
}else{
result[key] = ''+value;
}
}
console.log(result);
直接找个浏览器 F 12 ,然后在控制台输入上面的代码,按回车就能看到结果了:
var arr=["a=1","a=2","a=4","b=2","c=2","c=4"]
var set=[]
for(i=0;i<arr.length;i++){
this.set+=arr[i][2]
}
var idx="a="+set.slice(0,3)+"&"+"b="+set.slice(3,4)+"&"+"c="+set.slice(4)
console.log(idx.split("&")) ///返回 ["a=124", "b=2", "c=24"]
暂时想到的 如果你有更好的方法了,记得@我一下
var arr = ["a=1", "a=2", "a=4", "b=2", "c=2", "c=4"],
obj = {};
arr.filter(item => {
if (obj[item.split('=')[0]]) {
obj[item.split('=')[0]] += item.split('=')[1];
} else {
obj[item.split('=')[0]] = item.split('=')[0] + "=" + item.split('=')[1];
}
})
arr = Object.keys(obj).map(key => obj[key]);
console.log(arr)