我一直在寻找一种合并数组元素的方法。
所以我的数组的格式为[id1:port1,id2:port2,id1:port3,id2:port4,id5:port5...],其中每个元素都有2个部分。 id 部分不是唯一的。我尝试合并的是创建一个新数组,其中包含 [id1#port1:port3,id2#port2:port4,id5#port5]
等数据我尝试了下面的代码,但它并没有让我走得太远。有高手可以帮帮我吗?
var orinString = "id1:port1,id2:port2,id1:port3,id2:port4,id5:port5";
var newArray1 = orinString.split(",");
var newArray2 = orinString.split(",");
var newArray3 = [];
for (x=0; x<=newArray1.length-1; x++) {
for (y=0; y<= newArray2.length-1; y++) {
if ((newArray1[x].split(":")[0] == newArray2[y].split(":")[0]) && (newArray1[x].split(":")[1] != newArray2[y].split(":")[1])) {
newArray3.push(newArray1[x].split(":")[0] +"#"+ newArray1[x].split(":")[1]);
}
}
}
for (z=0; z<=newArray3.length; z++) {
gs.log("show me the result " +newArray3[z]);
}
最佳答案
是你想要的吗:
var orinString = "id1:port1,id2:port2,id1:port3,id2:port4,id5:port5";
var arr1 = orinString.split(",");
var temp= "";
var newStr = "";
arr1.sort();
for(i=0; i< arr1.length; i++) {
var item = arr1[i].split(':');
if(item[0] !== temp || temp === "") {
newStr += "," + item[0] + "#" + item[1];
} else {
newStr += ":"+item[1];
}
temp = item[0];
}
console.log(newStr.substring(1));
关于Javascript,合并数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33578961/